Skip to content
Snippets Groups Projects
Commit 714e59df authored by Martin Korec's avatar Martin Korec
Browse files

fix: add create and update validation for directors

parent 96b5180d
No related branches found
No related tags found
No related merge requests found
...@@ -2,14 +2,17 @@ import { Injectable } from '@nestjs/common'; ...@@ -2,14 +2,17 @@ import { Injectable } from '@nestjs/common';
import { CreateDirectorDto } from './dto/create-director.dto'; import { CreateDirectorDto } from './dto/create-director.dto';
import { UpdateDirectorDto } from './dto/update-director.dto'; import { UpdateDirectorDto } from './dto/update-director.dto';
import { PrismaService } from '../../prisma.service'; import { PrismaService } from '../../prisma.service';
import { plainToClass } from 'class-transformer';
import { DirectorEntity } from './entities/director.entity';
@Injectable() @Injectable()
export class DirectorsService { export class DirectorsService {
constructor(private prisma: PrismaService) {} constructor(private prisma: PrismaService) {}
async create(createDirectorDto: CreateDirectorDto) { async create(createDirectorDto: CreateDirectorDto) {
const director = plainToClass(DirectorEntity, createDirectorDto);
return await this.prisma.director.create({ return await this.prisma.director.create({
data: createDirectorDto, data: director,
}); });
} }
...@@ -26,12 +29,16 @@ export class DirectorsService { ...@@ -26,12 +29,16 @@ export class DirectorsService {
} }
async update(id: string, updateDirectorDto: UpdateDirectorDto) { async update(id: string, updateDirectorDto: UpdateDirectorDto) {
const updatedDirector = {
...await this.findOne(id),
...plainToClass(DirectorEntity, updateDirectorDto),
};
return await this.prisma.director.update({ return await this.prisma.director.update({
where: { where: {
id, id,
}, },
data: { data: {
...updateDirectorDto, ...updatedDirector,
}, },
}); });
} }
...@@ -43,8 +50,8 @@ export class DirectorsService { ...@@ -43,8 +50,8 @@ export class DirectorsService {
deletedAt: null, deletedAt: null,
}, },
select: { select: {
id: true id: true,
} },
}); });
if (directorMovie === undefined) { if (directorMovie === undefined) {
......
import {
IsDate,
IsNotEmpty,
IsOptional,
IsString,
MaxDate,
} from 'class-validator';
export class CreateDirectorDto { export class CreateDirectorDto {
@IsNotEmpty()
@IsString()
readonly name: string; readonly name: string;
@IsNotEmpty()
@IsString()
readonly surname: string; readonly surname: string;
readonly birthDate?: string;
@IsNotEmpty()
@IsDate()
@IsOptional()
@MaxDate(new Date())
readonly birthDate?: Date;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment