From bf8adb286ac085ec37d04f51326a02979452034d Mon Sep 17 00:00:00 2001 From: Faruk AYDIN Date: Fri, 11 Mar 2022 14:24:25 +0300 Subject: [PATCH] feat: Implement getExecutionSteps query --- .../graphql/queries/get-execution-steps.ts | 27 +++++++++++++++++++ .../backend/src/graphql/query-resolvers.ts | 2 ++ packages/backend/src/graphql/schema.graphql | 14 ++++++++++ 3 files changed, 43 insertions(+) create mode 100644 packages/backend/src/graphql/queries/get-execution-steps.ts diff --git a/packages/backend/src/graphql/queries/get-execution-steps.ts b/packages/backend/src/graphql/queries/get-execution-steps.ts new file mode 100644 index 00000000..7c419627 --- /dev/null +++ b/packages/backend/src/graphql/queries/get-execution-steps.ts @@ -0,0 +1,27 @@ +import Context from '../../types/express/context'; +import paginate from '../../helpers/pagination'; + +type Params = { + executionId: string; + limit: number; + offset: number; +}; + +const getExecutionSteps = async ( + _parent: unknown, + params: Params, + context: Context +) => { + const execution = await context.currentUser + .$relatedQuery('executions') + .findById(params.executionId) + .throwIfNotFound(); + + const executionSteps = execution + .$relatedQuery('executionSteps') + .orderBy('created_at', 'desc'); + + return paginate(executionSteps, params.limit, params.offset); +}; + +export default getExecutionSteps; diff --git a/packages/backend/src/graphql/query-resolvers.ts b/packages/backend/src/graphql/query-resolvers.ts index 680671fc..d1ee3aba 100644 --- a/packages/backend/src/graphql/query-resolvers.ts +++ b/packages/backend/src/graphql/query-resolvers.ts @@ -7,6 +7,7 @@ import getFlow from './queries/get-flow'; import getFlows from './queries/get-flows'; import getStepWithTestExecutions from './queries/get-step-with-test-executions'; import getExecutions from './queries/get-executions'; +import getExecutionSteps from './queries/get-execution-steps'; const queryResolvers = { getApps, @@ -18,6 +19,7 @@ const queryResolvers = { getFlows, getStepWithTestExecutions, getExecutions, + getExecutionSteps, }; export default queryResolvers; diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index ebe11b03..38f5a71a 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -8,6 +8,11 @@ type Query { getFlows: [Flow] getStepWithTestExecutions(stepId: String!): [Step] getExecutions(limit: Int!, offset: Int!): ExecutionConnection + getExecutionSteps( + executionId: String! + limit: Int! + offset: Int! + ): ExecutionStepConnection } type Mutation { @@ -363,11 +368,20 @@ type ExecutionEdge { node: Execution } +type ExecutionStepEdge { + node: ExecutionStep +} + type ExecutionConnection { edges: [ExecutionEdge] pageInfo: PageInfo } +type ExecutionStepConnection { + edges: [ExecutionStepEdge] + pageInfo: PageInfo +} + schema { query: Query mutation: Mutation