From 554e74d0d2b266cc34d19d5058f5bd58eb2a8d65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Kratochv=C3=ADl?= <xkrato10@fi.muni.cz> Date: Fri, 17 Jun 2022 23:28:41 +0200 Subject: [PATCH] feat: director CRUD - update and remove methods --- .../src/api/directors/directors.controller.ts | 5 +-- .../src/api/directors/directors.service.ts | 33 +++++++++++++++++-- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/backend/src/api/directors/directors.controller.ts b/backend/src/api/directors/directors.controller.ts index b95aac4..26b0233 100644 --- a/backend/src/api/directors/directors.controller.ts +++ b/backend/src/api/directors/directors.controller.ts @@ -31,10 +31,7 @@ export class DirectorsController { } @Patch(':id') - async update( - @Param('id') id: string, - @Body() updateDirectorDto: UpdateDirectorDto, - ) { + async update(@Param('id') id: string, @Body() updateDirectorDto: UpdateDirectorDto) { return await this.directorsService.update(id, updateDirectorDto); } diff --git a/backend/src/api/directors/directors.service.ts b/backend/src/api/directors/directors.service.ts index 5def117..5d0c16c 100644 --- a/backend/src/api/directors/directors.service.ts +++ b/backend/src/api/directors/directors.service.ts @@ -26,10 +26,37 @@ export class DirectorsService { } update(id: string, updateDirectorDto: UpdateDirectorDto) { - return `This action updates a #${id} director`; + return this.prisma.director.update({ + where: { + id, + }, + data: { + ...updateDirectorDto, + }, + }); } - remove(id: string) { - return `This action removes a #${id} director`; + async remove(id: string) { + const directorMovie = await this.prisma.movie.findFirst({ + where: { + directorId: id, + }, + select: { + id: true + } + }); + + if (directorMovie === undefined) { + return this.prisma.director.update({ + where: { + id, + }, + data: { + deletedAt: new Date(), + }, + }); + } + + return this.findOne(id); } } -- GitLab