diff --git a/packages/backend/src/graphql/mutations/create-connection.ts b/packages/backend/src/graphql/mutations/create-connection.ts index b7c63a23..43ccadd8 100644 --- a/packages/backend/src/graphql/mutations/create-connection.ts +++ b/packages/backend/src/graphql/mutations/create-connection.ts @@ -1,7 +1,8 @@ -import { GraphQLString, GraphQLNonNull } from 'graphql'; +import { GraphQLString, GraphQLNonNull, GraphQLEnumType } from 'graphql'; import Connection from '../../models/connection'; import App from '../../models/app'; import connectionType from '../types/connection'; +import availableAppsEnumType from '../types/available-apps-enum-type'; import RequestWithCurrentUser from '../../types/express/request-with-current-user'; import { GraphQLJSONObject } from 'graphql-type-json'; @@ -27,7 +28,7 @@ const createConnectionResolver = async (params: Params, req: RequestWithCurrentU const createConnection = { type: connectionType, args: { - key: { type: GraphQLNonNull(GraphQLString) }, + key: { type: availableAppsEnumType }, data: { type: GraphQLNonNull(GraphQLJSONObject) } }, resolve: (_: any, params: Params, req: RequestWithCurrentUser) => createConnectionResolver(params, req) diff --git a/packages/backend/src/graphql/types/available-apps-enum-type.ts b/packages/backend/src/graphql/types/available-apps-enum-type.ts new file mode 100644 index 00000000..ab21e194 --- /dev/null +++ b/packages/backend/src/graphql/types/available-apps-enum-type.ts @@ -0,0 +1,17 @@ +import { GraphQLEnumType } from 'graphql'; +import App from '../../models/app'; +import appInfoType from '../../types/app-info' + +const apps = App.findAll(); +const availableAppEnumValues: any = {} + +apps.forEach((app: appInfoType) => { + availableAppEnumValues[app.key] = { value: app.key } +}) + +const availableAppsEnumType = new GraphQLEnumType({ + name: 'AvailableAppsEnumType', + values: availableAppEnumValues +}) + +export default availableAppsEnumType;