diff --git a/server/src/index.js b/server/src/index.js index 4bb79559f..e21f8c5b0 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -78,15 +78,23 @@ async function run () { 'miners_', process.env.MINERS_API_URL, process.env.MINERS_PRESHARED) + const transformeStrategizerSchema = await createTransformedRemoteSchema( + 'strategizer_', + process.env.STRATEGIZER_API_URL, + process.env.STRATEGIZER_API_PRESHARED) + const transformeCockpitSchema = await createTransformedRemoteSchema( + 'cockpit_', + process.env.COCKPIT_API_URL, + process.env.COCKPIT_API_PRESHARED) var schemas = [] var resolvers = {} if (transformedTeamsSchema) { schemas.push(transformedTeamsSchema) - if (transformedUsersSchema && transformedEventsSchema) { + if (transformedUsersSchema && transformedEventsSchema && transformeStrategizerSchema) { schemas.push(teams.linkSchemaDefs) - resolvers = Object.assign(resolvers, teams.resolver(transformedUsersSchema, transformedEventsSchema)) + resolvers = Object.assign(resolvers, teams.resolver(transformedUsersSchema, transformedEventsSchema, transformeStrategizerSchema)) } } if (transformedUsersSchema) { @@ -107,9 +115,9 @@ async function run () { } if (transformedOperationsSchema) { schemas.push(transformedOperationsSchema) - if (transformedTeamsSchema) { + if (transformedTeamsSchema && transformeCockpitSchema) { schemas.push(operations.linkSchemaDefs) - resolvers = Object.assign(resolvers, operations.resolver(transformedTeamsSchema)) + resolvers = Object.assign(resolvers, operations.resolver(transformedTeamsSchema, transformeCockpitSchema)) } } if (transformedNotificationsSchema) { @@ -118,9 +126,6 @@ async function run () { if (transformedLogsSchema) { schemas.push(transformedLogsSchema) } - if (transformedMinersSchema) { - schemas.push(transformedMinersSchema) - } const schema = mergeSchemas({ schemas, diff --git a/server/src/links/operations.js b/server/src/links/operations.js index f87ba9b57..476483d7f 100644 --- a/server/src/links/operations.js +++ b/server/src/links/operations.js @@ -6,9 +6,43 @@ export const linkSchemaDefs = extend type operations_GetClones { bot: teams_FinancialBeings } + extend type operations_Clone { + orders( state: cockpit_OrderStateEnum ): [cockpit_Order] + } + extend type operations_Clone { + signals( state: cockpit_SignalStateEnum ): [cockpit_Signal] + } ` -export const resolver = (teamsSchema) => ({ +export const resolver = (teamsSchema, cockpitSchema) => ({ + operations_Clone: { + orders: { + fragment: `fragment OrderFragment on operations_Clone{id}`, + resolve ({id: cloneId}, args, context, info) { + return info.mergeInfo.delegateToSchema({ + schema: cockpitSchema, + operation: 'query', + fieldName: 'cockpit_OrdersByClondeId', + args: { ...args, cloneId }, + context, + info + }) + } + }, + signals: { + fragment: `fragment SignalFragment on operations_Clone{id}`, + resolve ({id: cloneId}, args, context, info) { + return info.mergeInfo.delegateToSchema({ + schema: cockpitSchema, + operation: 'query', + fieldName: 'cockpit_SignalsByClondeId', + args: { ...args, cloneId }, + context, + info + }) + } + } + }, operations_GetClones: { team: { fragment: `fragment TeamFragment on operations_GetClones{teamId}`, diff --git a/server/src/links/teams.js b/server/src/links/teams.js index d79f3c2aa..bcbfd0d04 100644 --- a/server/src/links/teams.js +++ b/server/src/links/teams.js @@ -13,9 +13,27 @@ export const linkSchemaDefs = maxEndDate: Int ): [events_Event] } + extend type teams_FinancialBeings { + strategy: strategizer_Strategy + } ` -export const resolver = (usersSchema, eventsSchema) => ({ +export const resolver = (usersSchema, eventsSchema, strategizerSchema) => ({ + teams_FinancialBeings: { + strategy: { + fragment: `fragment StrategyFragment on teams_FinancialBeings{slug}`, + resolve ({slug: fbSlug}, args, context, info) { + return info.mergeInfo.delegateToSchema({ + schema: strategizerSchema, + operation: 'query', + fieldName: 'strategizer_StrategyByFb', + args: { fbSlug }, + context, + info + }) + } + } + }, teams_Team: { ownerUser: { fragment: `fragment UserFragment on teams_Team{owner}`,