feat: Implement get flow graphQL query

This commit is contained in:
Faruk AYDIN
2021-12-24 16:05:44 +03:00
committed by Ali BARIN
parent e0f380026e
commit e3184aedb8
4 changed files with 38 additions and 2 deletions

View File

@@ -0,0 +1,29 @@
import { GraphQLNonNull, GraphQLString } from 'graphql';
import Flow from '../../models/flow';
import RequestWithCurrentUser from '../../types/express/request-with-current-user';
import flowType from '../types/flow';
type Params = {
id: number
}
const getFlowResolver = async (params: Params, req: RequestWithCurrentUser) => {
const flowParams = { user_id: req.currentUser.id, id: params.id }
const flow = await Flow.query()
.withGraphFetched('steps')
.findOne(flowParams)
.throwIfNotFound();
return flow;
}
const getFlow = {
type: flowType,
args: {
id: { type: GraphQLNonNull(GraphQLString) },
},
resolve: (_: any, params: Params, req: RequestWithCurrentUser) => getFlowResolver(params, req)
}
export default getFlow;

View File

@@ -4,6 +4,7 @@ import getApp from './queries/get-app';
import getConnectedApps from './queries/get-connected-apps';
import getAppConnections from './queries/get-app-connections';
import testConnection from './queries/test-connection';
import getFlow from './queries/get-flow';
import getFlows from './queries/get-flows';
const rootQuery = new GraphQLObjectType({
@@ -14,6 +15,7 @@ const rootQuery = new GraphQLObjectType({
getConnectedApps,
getAppConnections,
testConnection,
getFlow,
getFlows
}
});

View File

@@ -1,10 +1,14 @@
import { GraphQLObjectType, GraphQLString } from 'graphql';
import { GraphQLList, GraphQLObjectType, GraphQLString } from 'graphql';
import StepType from './step';
const flowType = new GraphQLObjectType({
name: 'Flow',
fields: {
id: { type: GraphQLString },
name: { type: GraphQLString }
name: { type: GraphQLString },
steps: {
type: GraphQLList(StepType),
}
}
})

View File

@@ -3,6 +3,7 @@ import { GraphQLObjectType, GraphQLString, GraphQLNonNull, GraphQLEnumType, Grap
const stepType = new GraphQLObjectType({
name: 'Step',
fields: {
id: { type: GraphQLString },
key: { type: GraphQLNonNull(GraphQLString) },
appKey: { type: GraphQLNonNull(GraphQLString) },
type: {