Newer
Older
import { Args, Parent, Query, ResolveField, Resolver } from '@nestjs/graphql';
import { Agent } from './models/agent.model';
import { PrismaService } from '../prisma/prisma.service';
import { GraphQLString } from 'graphql';
import { NotFoundException } from '@nestjs/common';
@Query(() => [Agent])
listAgents() {
return this.prismaService.agent.findMany({
include: {
unlocks: true,
entries: true,
},
});
}
@Query(() => Agent)
async getAgent(
@Args({ name: 'code', type: () => GraphQLString }) code: string,
) {
const agent = await this.prismaService.agent.findFirst({
where: { slug: code },
});
return agent;
}
@ResolveField('unlocks')
async unlocks(@Parent() entry: Agent) {
const result = await this.prismaService.agent.findFirst({
where: { id: entry.id },
select: { unlocks: true },
});
return result.unlocks;
}
@ResolveField('entries')
async entries(@Parent() entry: Agent) {
const result = await this.prismaService.agent.findFirst({
where: { id: entry.id },
select: { entries: true },
});
return result.entries;
}
}