Files
automatisch/packages/backend/src/graphql/mutations/create-flow.js
2024-01-05 19:08:04 +01:00

46 lines
952 B
JavaScript

import App from '../../models/app.js';
import Step from '../../models/step.js';
const createFlow = async (_parent, params, context) => {
context.currentUser.can('create', 'Flow');
const connectionId = params?.input?.connectionId;
const appKey = params?.input?.triggerAppKey;
if (appKey) {
await App.findOneByKey(appKey);
}
const flow = await context.currentUser.$relatedQuery('flows').insert({
name: 'Name your flow',
});
if (connectionId) {
const hasConnection = await context.currentUser
.$relatedQuery('connections')
.findById(connectionId);
if (!hasConnection) {
throw new Error('The connection does not exist!');
}
}
await Step.query().insert({
flowId: flow.id,
type: 'trigger',
position: 1,
appKey,
connectionId,
});
await Step.query().insert({
flowId: flow.id,
type: 'action',
position: 2,
});
return flow;
};
export default createFlow;