import { ParseIntPipe, UseGuards } from '@nestjs/common'; import { Args, Mutation, Query, ResolveField, Resolver, } from '@nestjs/graphql'; import { CatsGuard } from './cats.guard'; import { CatsService } from './cats.service'; import { Cat } from './interfaces/cat.interface'; @Resolver('Cat') export class CatsResolvers { constructor(private readonly catsService: CatsService) {} @Query() @UseGuards(CatsGuard) async getCats() { return await this.catsService.findAll(); } @ResolveField('color') getColor() { return 'black'; } @ResolveField() weight() { return 5; } @Query('cat') async findOneById( @Args('id', ParseIntPipe) id: number, ): Promise<Cat> { return await this.catsService.findOneById(id); } @Mutation('createCat') async create(@Args() args: Cat): Promise<Cat> { const createdCat = await this.catsService.create(args); return createdCat; } }