diff --git a/packages/backend/src/graphql/mutations/delete-flow.ts b/packages/backend/src/graphql/mutations/delete-flow.ts index 9dcd5409..d7daddc7 100644 --- a/packages/backend/src/graphql/mutations/delete-flow.ts +++ b/packages/backend/src/graphql/mutations/delete-flow.ts @@ -1,4 +1,6 @@ import Context from '../../types/express/context'; +import Execution from '../../models/execution'; +import ExecutionStep from '../../models/execution-step'; type Params = { input: { @@ -11,14 +13,23 @@ const deleteFlow = async ( params: Params, context: Context ) => { - await context.currentUser + const flow = await context.currentUser .$relatedQuery('flows') - .delete() .findOne({ id: params.input.id, }) .throwIfNotFound(); + const executionIds = ( + await flow.$relatedQuery('executions').select('executions.id') + ).map((execution: Execution) => execution.id); + + await ExecutionStep.query().delete().whereIn('execution_id', executionIds); + + await flow.$relatedQuery('executions').delete(); + await flow.$relatedQuery('steps').delete(); + await flow.$query().delete(); + return; };