Nestjs/Graphql/TypeOrm сервис и мутация для удаления нескольких записей?

В имеющемся проекте есть сервис для удаления одной записи в БД.

pets.entity:

import { Field, Int, ObjectType } from '@nestjs/graphql';
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
@ObjectType()
export class Pet {
  @PrimaryGeneratedColumn({
    type: 'bigint',
    name: 'pet_id',
  })
  @Field(type => Int)
  id: number;

  @Column()
  @Field()
  name: string;

  @Column({ nullable: true })
  @Field({ nullable: true })
  type?: string;
}


dto/create-pet.input:

import { Field, InputType } from '@nestjs/graphql';

@InputType()
export class CreatePetInput {
  @Field()
  name: string;

  @Field({ nullable: true })
  type?: string;
}

dto/update-pet.input:

import { CreatePetInput } from './create-pet.input';
import { InputType, Field, Int, PartialType } from '@nestjs/graphql';

@InputType()
export class UpdatePetInput extends PartialType(CreatePetInput) {
  @Field(() => Int, { nullable: false })
  id: number;
}

import { Injectable } from '@nestjs/common';
import { Pet } from './pets.entity';
import { InjectRepository } from '@nestjs/typeorm';
import { In, Repository } from 'typeorm';
import { CreatePetInput } from './dto/create-pet.input';
import { UpdatePetInput } from './dto/update-pet.input';

@Injectable()
export class PetsService {
  constructor(@InjectRepository(Pet) private petsRepository: Repository<Pet>) {}

  async remove(id: number): Promise<number> { // удаление одной записи
    await this.petsRepository.delete({ id: id });
    return id;
  }

  async removeItems(ids){ // как описать удаление нескольких?
     /// ??? 
  }

}

pets.resolver.ts:

import { Args, Mutation, Query, Resolver, Int } from '@nestjs/graphql';
import { Pet } from './pets.entity';
import { PetsService } from './pets.service';
import { CreatePetInput } from './dto/create-pet.input';
import { UpdatePetInput } from './dto/update-pet.input';

@Resolver()
export class PetsResolver {
  constructor(private petsService: PetsService) {}

  @Mutation((returns) => Pet)
  async removePet(@Args('id', { type: () => Int }) id: number) {
    return await this.petsService.remove(id);
  }

  // как описать удаление нескольких?

}


pets.modue.ts:

import { Module } from '@nestjs/common';
import { PetsService } from './pets.service';
import { PetsResolver } from './pets.resolver';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Pet } from './pets.entity';

@Module({
  imports: [TypeOrmModule.forFeature([Pet])],
  providers: [PetsService, PetsResolver],
})
export class PetsModule {}

мутация на фронте:

mutation remove {
  removePet(id: 1) {
    id
    name
    type
  }
}

Как сделать удаление нескольких в resolver.ts и service.ts? И как будет выглядет мутация на фронте?


Ответы (0 шт):