diff --git a/server/src/index.js b/server/src/index.js index bd0161f0c..cd98ab404 100644 --- a/server/src/index.js +++ b/server/src/index.js @@ -76,9 +76,9 @@ async function run () { if (transformedTeamsSchema) { schemas.push(transformedTeamsSchema) - if (transformedUsersSchema) { + if (transformedUsersSchema && transformedEventsSchema) { schemas.push(teams.linkSchemaDefs) - resolvers = Object.assign(resolvers, teams.resolver(transformedUsersSchema)) + resolvers = Object.assign(resolvers, teams.resolver(transformedUsersSchema, transformedEventsSchema)) } } if (transformedUsersSchema) { diff --git a/server/src/links/teams.js b/server/src/links/teams.js index fd1b73027..d79f3c2aa 100644 --- a/server/src/links/teams.js +++ b/server/src/links/teams.js @@ -3,9 +3,19 @@ export const linkSchemaDefs = extend type teams_Team { ownerUser: users_User } + extend type teams_Team { + events( + hostId: String, + inviteeId: String, + minStartDate: Int, + maxStartDate: Int, + minEndDate: Int, + maxEndDate: Int + ): [events_Event] + } ` -export const resolver = (usersSchema) => ({ +export const resolver = (usersSchema, eventsSchema) => ({ teams_Team: { ownerUser: { fragment: `fragment UserFragment on teams_Team{owner}`, @@ -19,6 +29,19 @@ export const resolver = (usersSchema) => ({ info }) } + }, + events: { + fragment: `fragment EventFragment on teams_Team{id}`, + resolve ({id: participantId}, args, context, info) { + return info.mergeInfo.delegateToSchema({ + schema: eventsSchema, + operation: 'query', + fieldName: 'events_Events', + args: { ...args, participantId }, + context, + info + }) + } } } })