HelloEventResolver + on scheduled-event-service
@Resolver((of) => HelloEventDto)
@UseGuards(GQLAuthGuard)
export class HelloEventResolver {
log = new Logger(HelloEventResolver.name);
constructor(
private readonly cls: ClsService,
private scheduledEventService: ScheduledEventService
) {}
@Public()
@Query(() => HelloEventDto)
async helloScheduledEvent(@Args('data') data: GetUniqueInputDto) {
this.log.debug(`helloScheduledEvent: ${data.id}`);
const scheduled_event = await this.scheduledEventService.get(data);
return {
ws_connected: false,
scheduled_event_id: scheduled_event.id,
scheduled_event,
active_interactions: [],
};
}
@ResolveField((of) => SportTeamDto)
async away_sport_team(@Parent() data: HelloEventDto) {
console.log('RESOLVE FIELD away_team FOR', data);
return {
__typename: SportTeamDto,
id: data.scheduled_event.sport_event.away_sport_team_id,
};
}
}
SportTeamResolver + on sport-service
@Resolver((of) => SportTeamDto)
@UseGuards(GQLAuthGuard)
export class SportTeamResolver {
constructor(
private readonly cls: ClsService,
private sportTeamService: SportTeamService
) {}
@ResolveReference()
resolveReference(reference: { __typename: string; id: string }) {
console.log('ResolveReference SportTeamDto', reference);
return this.sportTeamService.get({ id: reference.id });
}
@Query(() => SportTeamDto)
async getSportTeam(@Args('data') data: GetUniqueInputDto) {
return await this.sportTeamService.get(data);
}
}