diff --git a/packages/backend/src/graphql/mutations/delete-step.ts b/packages/backend/src/graphql/mutations/delete-step.ts new file mode 100644 index 00000000..2a000887 --- /dev/null +++ b/packages/backend/src/graphql/mutations/delete-step.ts @@ -0,0 +1,33 @@ +import { GraphQLInt, GraphQLNonNull, GraphQLBoolean } from 'graphql'; +import Step from '../../models/step'; +import RequestWithCurrentUser from '../../types/express/request-with-current-user'; + +type Params = { + id: number; +}; + +const deleteStepResolver = async ( + params: Params, + req: RequestWithCurrentUser +) => { + // TODO: This logic should be revised by using current user + await Step.query() + .delete() + .findOne({ + id: params.id, + }) + .throwIfNotFound(); + + return; +}; + +const deleteStep = { + type: GraphQLBoolean, + args: { + id: { type: GraphQLNonNull(GraphQLInt) }, + }, + resolve: (_: any, params: Params, req: RequestWithCurrentUser) => + deleteStepResolver(params, req), +}; + +export default deleteStep; diff --git a/packages/backend/src/graphql/root-mutation.ts b/packages/backend/src/graphql/root-mutation.ts index 9096d649..82eb9126 100644 --- a/packages/backend/src/graphql/root-mutation.ts +++ b/packages/backend/src/graphql/root-mutation.ts @@ -8,6 +8,7 @@ import deleteConnection from './mutations/delete-connection'; import createFlow from './mutations/create-flow'; import updateFlow from './mutations/update-flow'; import createStep from './mutations/create-step'; +import deleteStep from './mutations/delete-step'; import updateStep from './mutations/update-step'; import executeStep from './mutations/execute-step'; import login from './mutations/login'; @@ -25,9 +26,10 @@ const rootMutation = new GraphQLObjectType({ updateFlow, createStep, updateStep, + deleteStep, executeStep, - login - } + login, + }, }); export default rootMutation;