feat: Implement flow removal with associated records
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user