Public Access
Add attendee transformation workflows
This commit is contained in:
@@ -59,7 +59,8 @@ internal static class MeetingWorkflowRulesValidator
|
||||
trigger.Created is not null,
|
||||
trigger.StateTransition is not null,
|
||||
trigger.SpeakerIdentified is not null,
|
||||
trigger.TranscriptLine is not null);
|
||||
trigger.TranscriptLine is not null,
|
||||
trigger.AttendeeAdded is not null);
|
||||
if (configuredCount == 0)
|
||||
{
|
||||
errors.Add($"{ruleName} on[{triggerIndex + 1}] must contain one supported trigger: {JoinAllowed(MeetingWorkflowRuleSchema.SupportedTriggerKeys)}.");
|
||||
@@ -137,6 +138,12 @@ internal static class MeetingWorkflowRulesValidator
|
||||
return;
|
||||
}
|
||||
|
||||
if (HasAttendeeAddedTrigger(rule) &&
|
||||
!IsAttendeeNameSetPropertyStep(step))
|
||||
{
|
||||
errors.Add($"{stepPath} on attendee_added rules can only transform the attendee with 'set_property' property 'attendee.name'.");
|
||||
}
|
||||
|
||||
if (MeetingWorkflowRuleSchema.IsStep(uses, MeetingWorkflowRuleSchema.StepSetProperty))
|
||||
{
|
||||
var property = step.Property ?? step.Name;
|
||||
@@ -153,6 +160,11 @@ internal static class MeetingWorkflowRulesValidator
|
||||
{
|
||||
errors.Add($"{stepPath} can set 'transcript.line' only on rules with a transcript_line trigger.");
|
||||
}
|
||||
else if (MeetingWorkflowRuleSchema.IsProperty(property, MeetingWorkflowRuleSchema.PropertyAttendeeName) &&
|
||||
!HasAttendeeAddedTrigger(rule))
|
||||
{
|
||||
errors.Add($"{stepPath} can set 'attendee.name' only on rules with an attendee_added trigger.");
|
||||
}
|
||||
}
|
||||
|
||||
if (step.Value is { } value &&
|
||||
@@ -181,6 +193,17 @@ internal static class MeetingWorkflowRulesValidator
|
||||
return rule.On.Any(static trigger => trigger.TranscriptLine is not null);
|
||||
}
|
||||
|
||||
private static bool HasAttendeeAddedTrigger(MeetingWorkflowRule rule)
|
||||
{
|
||||
return rule.On.Any(static trigger => trigger.AttendeeAdded is not null);
|
||||
}
|
||||
|
||||
private static bool IsAttendeeNameSetPropertyStep(MeetingWorkflowStep step)
|
||||
{
|
||||
return MeetingWorkflowRuleSchema.IsStep(step.Uses, MeetingWorkflowRuleSchema.StepSetProperty) &&
|
||||
MeetingWorkflowRuleSchema.IsProperty(step.Property ?? step.Name, MeetingWorkflowRuleSchema.PropertyAttendeeName);
|
||||
}
|
||||
|
||||
private static int CountConfigured(params bool[] values)
|
||||
{
|
||||
return values.Count(static value => value);
|
||||
@@ -206,7 +229,8 @@ internal static class MeetingWorkflowRulesValidator
|
||||
new MeetingWorkflowSpeakerModel("Ada Lovelace"),
|
||||
new MeetingWorkflowTranscriptModel(
|
||||
"[00:00:01] Ada Lovelace: Validation line.",
|
||||
"Ada Lovelace"));
|
||||
"Ada Lovelace"),
|
||||
new MeetingWorkflowAttendeeModel("Ada Lovelace"));
|
||||
}
|
||||
|
||||
private static string FormatRazorValidationMessage(Exception exception)
|
||||
|
||||
Reference in New Issue
Block a user