Files
automatisch/packages/backend/src/graphql/mutations/delete-flow.ts
2022-09-21 09:11:03 +02:00

37 lines
835 B
TypeScript

import Context from '../../types/express/context';
import Execution from '../../models/execution';
import ExecutionStep from '../../models/execution-step';
type Params = {
input: {
id: string;
};
};
const deleteFlow = async (
_parent: unknown,
params: Params,
context: Context
) => {
const flow = await context.currentUser
.$relatedQuery('flows')
.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;
};
export default deleteFlow;