diff --git a/backend/src/api/directors/directors.service.ts b/backend/src/api/directors/directors.service.ts index 8a5374d891430d649b43115deecba26ec096caf1..417b72b7b154f802916de8fa7503a86beec70c20 100644 --- a/backend/src/api/directors/directors.service.ts +++ b/backend/src/api/directors/directors.service.ts @@ -2,14 +2,17 @@ import { Injectable } from '@nestjs/common'; import { CreateDirectorDto } from './dto/create-director.dto'; import { UpdateDirectorDto } from './dto/update-director.dto'; import { PrismaService } from '../../prisma.service'; +import { plainToClass } from 'class-transformer'; +import { DirectorEntity } from './entities/director.entity'; @Injectable() export class DirectorsService { constructor(private prisma: PrismaService) {} async create(createDirectorDto: CreateDirectorDto) { + const director = plainToClass(DirectorEntity, createDirectorDto); return await this.prisma.director.create({ - data: createDirectorDto, + data: director, }); } @@ -26,12 +29,16 @@ export class DirectorsService { } async update(id: string, updateDirectorDto: UpdateDirectorDto) { + const updatedDirector = { + ...await this.findOne(id), + ...plainToClass(DirectorEntity, updateDirectorDto), + }; return await this.prisma.director.update({ where: { id, }, data: { - ...updateDirectorDto, + ...updatedDirector, }, }); } @@ -43,8 +50,8 @@ export class DirectorsService { deletedAt: null, }, select: { - id: true - } + id: true, + }, }); if (directorMovie === undefined) { diff --git a/backend/src/api/directors/dto/create-director.dto.ts b/backend/src/api/directors/dto/create-director.dto.ts index f1c2bc82cf286ab2a88cd439b9d7abe6837e6021..35a268cb9eb49fd8307ee99323035f4472a1c8db 100644 --- a/backend/src/api/directors/dto/create-director.dto.ts +++ b/backend/src/api/directors/dto/create-director.dto.ts @@ -1,5 +1,23 @@ +import { + IsDate, + IsNotEmpty, + IsOptional, + IsString, + MaxDate, +} from 'class-validator'; + export class CreateDirectorDto { + @IsNotEmpty() + @IsString() readonly name: string; + + @IsNotEmpty() + @IsString() readonly surname: string; - readonly birthDate?: string; + + @IsNotEmpty() + @IsDate() + @IsOptional() + @MaxDate(new Date()) + readonly birthDate?: Date; }