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? И как будет выглядет мутация на фронте?