diff --git a/client/src/views/layout/header/imports.js b/client/src/views/layout/header/imports.js index 644143af3..953a7ddf5 100644 --- a/client/src/views/layout/header/imports.js +++ b/client/src/views/layout/header/imports.js @@ -86,7 +86,7 @@ const operationsMenus = { const allMenus = [ usersMenus, teamsMenus, - // eventsMenus, + eventsMenus, // financialBeingsMenus, keyvaultMenus, operationsMenus diff --git a/server/src/index.js b/server/src/index.js index cd98ab404..bd6369e97 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -8,7 +8,7 @@ import jwksRsa from 'jwks-rsa' import axios from 'axios' import { createTransformedRemoteSchema } from './createRemoteSchema' -import { teams, events } from './links' +import { teams, events, operations } from './links' import logger from './logger' @@ -99,6 +99,10 @@ async function run () { } if (transformedOperationsSchema) { schemas.push(transformedOperationsSchema) + if (transformedTeamsSchema) { + schemas.push(operations.linkSchemaDefs) + resolvers = Object.assign(resolvers, operations.resolver(transformedTeamsSchema)) + } } if (transformedNotificationsSchema) { schemas.push(transformedNotificationsSchema) diff --git a/server/src/links/events.js b/server/src/links/events.js index 7044cc9b2..048285e2a 100644 --- a/server/src/links/events.js +++ b/server/src/links/events.js @@ -132,12 +132,12 @@ export const resolver = (usersSchema, teamsSchema, operationsSchema) => ({ }, clone: { fragment: `fragment CloneFragment on events_Participant{operationId}`, - resolve ({operationId : cloneIdList}, args, context, info) { + resolve ({operationId: cloneId}, args, context, info) { return info.mergeInfo.delegateToSchema({ schema: operationsSchema, operation: 'query', - fieldName: 'operations_GetClones', - args: { cloneIdList }, + fieldName: 'operations_GetClone', + args: { cloneId }, context, info }) diff --git a/server/src/links/index.js b/server/src/links/index.js index d08e07a50..9941d76a2 100644 --- a/server/src/links/index.js +++ b/server/src/links/index.js @@ -1,4 +1,5 @@ import teams from './teams' import events from './events' +import operations from './operations' -export { teams, events } +export { teams, events, operations } diff --git a/server/src/links/operations.js b/server/src/links/operations.js new file mode 100644 index 000000000..f87ba9b57 --- /dev/null +++ b/server/src/links/operations.js @@ -0,0 +1,42 @@ +export const linkSchemaDefs = + ` + extend type operations_GetClones { + team: teams_Team + } + extend type operations_GetClones { + bot: teams_FinancialBeings + } + ` + +export const resolver = (teamsSchema) => ({ + operations_GetClones: { + team: { + fragment: `fragment TeamFragment on operations_GetClones{teamId}`, + resolve ({teamId}, args, context, info) { + return info.mergeInfo.delegateToSchema({ + schema: teamsSchema, + operation: 'query', + fieldName: 'teams_TeamById', + args: { teamId }, + context, + info + }) + } + }, + bot: { + fragment: `fragment TeamFragment on operations_GetClones{botId}`, + resolve ({botId: fbId}, args, context, info) { + return info.mergeInfo.delegateToSchema({ + schema: teamsSchema, + operation: 'query', + fieldName: 'teams_FbByFbId', + args: { fbId }, + context, + info + }) + } + } + } +}) + +export default { resolver, linkSchemaDefs }