diff --git a/packages/backend/src/graphql/mutation-resolvers.js b/packages/backend/src/graphql/mutation-resolvers.js index 7305b068..b17acdd2 100644 --- a/packages/backend/src/graphql/mutation-resolvers.js +++ b/packages/backend/src/graphql/mutation-resolvers.js @@ -7,7 +7,6 @@ import generateAuthUrl from './mutations/generate-auth-url.js'; import createConnection from './mutations/create-connection.js'; import resetConnection from './mutations/reset-connection.js'; import updateConnection from './mutations/update-connection.js'; -import updateFlowStatus from './mutations/update-flow-status.js'; const mutationResolvers = { createConnection, @@ -16,7 +15,6 @@ const mutationResolvers = { resetConnection, updateConnection, updateCurrentUser, - updateFlowStatus, updateUser, verifyConnection, }; diff --git a/packages/backend/src/graphql/mutations/update-flow-status.js b/packages/backend/src/graphql/mutations/update-flow-status.js deleted file mode 100644 index 0df919ad..00000000 --- a/packages/backend/src/graphql/mutations/update-flow-status.js +++ /dev/null @@ -1,91 +0,0 @@ -import Flow from '../../models/flow.js'; -import flowQueue from '../../queues/flow.js'; -import { - REMOVE_AFTER_30_DAYS_OR_150_JOBS, - REMOVE_AFTER_7_DAYS_OR_50_JOBS, -} from '../../helpers/remove-job-configuration.js'; -import globalVariable from '../../helpers/global-variable.js'; - -const JOB_NAME = 'flow'; -const EVERY_15_MINUTES_CRON = '*/15 * * * *'; - -const updateFlowStatus = async (_parent, params, context) => { - const conditions = context.currentUser.can('publish', 'Flow'); - const isCreator = conditions.isCreator; - const allFlows = Flow.query(); - const userFlows = context.currentUser.$relatedQuery('flows'); - const baseQuery = isCreator ? userFlows : allFlows; - - let flow = await baseQuery - .clone() - .findOne({ - id: params.input.id, - }) - .throwIfNotFound(); - - const newActiveValue = params.input.active; - - if (flow.active === newActiveValue) { - return flow; - } - - 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 = { - pattern: interval || EVERY_15_MINUTES_CRON, - }; - - if (trigger.type === 'webhook') { - const $ = await globalVariable({ - flow, - connection: await triggerStep.$relatedQuery('connection'), - app: await triggerStep.getApp(), - step: triggerStep, - testRun: false, - }); - - if (newActiveValue && trigger.registerHook) { - await trigger.registerHook($); - } else if (!newActiveValue && trigger.unregisterHook) { - await trigger.unregisterHook($); - } - } else { - if (newActiveValue) { - flow = await flow.$query().patchAndFetch({ - publishedAt: new Date().toISOString(), - }); - - const jobName = `${JOB_NAME}-${flow.id}`; - - await flowQueue.add( - jobName, - { flowId: flow.id }, - { - repeat: repeatOptions, - jobId: flow.id, - removeOnComplete: REMOVE_AFTER_7_DAYS_OR_50_JOBS, - removeOnFail: REMOVE_AFTER_30_DAYS_OR_150_JOBS, - } - ); - } else { - const repeatableJobs = await flowQueue.getRepeatableJobs(); - const job = repeatableJobs.find((job) => job.id === flow.id); - - await flowQueue.removeRepeatableByKey(job.key); - } - } - - flow = await flow.$query().withGraphFetched('steps').patchAndFetch({ - active: newActiveValue, - }); - - return flow; -}; - -export default updateFlowStatus; diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index 680cd798..a0e394c8 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -8,7 +8,6 @@ type Mutation { resetConnection(input: ResetConnectionInput): Connection updateConnection(input: UpdateConnectionInput): Connection updateCurrentUser(input: UpdateCurrentUserInput): User - updateFlowStatus(input: UpdateFlowStatusInput): Flow updateUser(input: UpdateUserInput): User verifyConnection(input: VerifyConnectionInput): Connection } @@ -234,11 +233,6 @@ input VerifyConnectionInput { id: String! } -input UpdateFlowStatusInput { - id: String! - active: Boolean! -} - input ExecuteFlowInput { stepId: String! } diff --git a/packages/web/src/graphql/mutations/update-flow-status.js b/packages/web/src/graphql/mutations/update-flow-status.js deleted file mode 100644 index 862a5ad2..00000000 --- a/packages/web/src/graphql/mutations/update-flow-status.js +++ /dev/null @@ -1,9 +0,0 @@ -import { gql } from '@apollo/client'; -export const UPDATE_FLOW_STATUS = gql` - mutation UpdateFlowStatus($input: UpdateFlowStatusInput) { - updateFlowStatus(input: $input) { - id - active - } - } -`;