diff --git a/packages/backend/src/graphql/mutations/update-flow-status.js b/packages/backend/src/graphql/mutations/update-flow-status.js index 169996f2..0df919ad 100644 --- a/packages/backend/src/graphql/mutations/update-flow-status.js +++ b/packages/backend/src/graphql/mutations/update-flow-status.js @@ -30,6 +30,11 @@ const updateFlowStatus = async (_parent, params, context) => { } const triggerStep = await flow.getTriggerStep(); + + if (triggerStep.status === 'incomplete') { + throw flow.IncompleteStepsError; + } + const trigger = await triggerStep.getTriggerCommand(); const interval = trigger.getInterval?.(triggerStep.parameters); const repeatOptions = { diff --git a/packages/backend/src/models/flow.js b/packages/backend/src/models/flow.js index e058de71..30b0310e 100644 --- a/packages/backend/src/models/flow.js +++ b/packages/backend/src/models/flow.js @@ -112,6 +112,13 @@ class Flow extends Base { return lastExecutions.map((execution) => execution.internalId); } + get IncompleteStepsError() { + return new ValidationError({ + message: 'All steps should be completed before updating flow status!', + type: 'incompleteStepsError', + }); + } + async $beforeUpdate(opt, queryContext) { await super.$beforeUpdate(opt, queryContext); @@ -124,10 +131,7 @@ class Flow extends Base { }); if (incompleteStep) { - throw new ValidationError({ - message: 'All steps should be completed before updating flow status!', - type: 'incompleteStepsError', - }); + throw this.IncompleteStepsError; } const allSteps = await oldFlow.$relatedQuery('steps');