From 42fa885db03ef001abb5e3bf4ed5cefe53460dfd Mon Sep 17 00:00:00 2001 From: ariadi Date: Sun, 26 May 2024 15:27:52 +0700 Subject: [PATCH 1/3] Update users.dto.ts Small refactoring --- lib/prisma/src/dtos/users.dto.ts | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/prisma/src/dtos/users.dto.ts b/lib/prisma/src/dtos/users.dto.ts index 5bf903b..6c4891b 100644 --- a/lib/prisma/src/dtos/users.dto.ts +++ b/lib/prisma/src/dtos/users.dto.ts @@ -1,20 +1,15 @@ -import { IsEmail, IsString, IsNotEmpty, MinLength, MaxLength } from 'class-validator'; - -export class CreateUserDto { - @IsEmail() - public email: string; +import { IsEmail, IsString, IsNotEmpty, Length } from 'class-validator'; +class BaseUserDto { @IsString() @IsNotEmpty() - @MinLength(9) - @MaxLength(32) + @Length(9,32) public password: string; } -export class UpdateUserDto { - @IsString() - @IsNotEmpty() - @MinLength(9) - @MaxLength(32) - public password: string; +export class CreateUserDto extends BaseUserDto { + @IsEmail() + public email: string; } + +export class UpdateUserDto extends BaseUserDto {} From 36aa0c98c69e757df54e2a8b2cb017e69bc8ab44 Mon Sep 17 00:00:00 2001 From: ariadi Date: Sun, 26 May 2024 15:31:47 +0700 Subject: [PATCH 2/3] Update users.service.ts updateUserDto is responsible for updateUser function. --- lib/prisma/src/services/users.service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/prisma/src/services/users.service.ts b/lib/prisma/src/services/users.service.ts index d027d7a..d8edc08 100644 --- a/lib/prisma/src/services/users.service.ts +++ b/lib/prisma/src/services/users.service.ts @@ -1,7 +1,7 @@ import { PrismaClient } from '@prisma/client'; import { hash } from 'bcrypt'; import { Service } from 'typedi'; -import { CreateUserDto } from '@dtos/users.dto'; +import { CreateUserDto, UpdateUserDto } from '@dtos/users.dto'; import { HttpException } from '@/exceptions/httpException'; import { User } from '@interfaces/users.interface'; @@ -30,7 +30,7 @@ export class UserService { return createUserData; } - public async updateUser(userId: number, userData: CreateUserDto): Promise { + public async updateUser(userId: number, userData: UpdateUserDto): Promise { const findUser: User = await this.user.findUnique({ where: { id: userId } }); if (!findUser) throw new HttpException(409, "User doesn't exist"); From 6040ca9929513f030d415a52d8a4d41ea0162bd4 Mon Sep 17 00:00:00 2001 From: ariadi Date: Sun, 26 May 2024 15:38:41 +0700 Subject: [PATCH 3/3] Update users.route.ts Update route uses UpdateUserDto --- lib/prisma/src/routes/users.route.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/prisma/src/routes/users.route.ts b/lib/prisma/src/routes/users.route.ts index b750b9f..6c74a62 100644 --- a/lib/prisma/src/routes/users.route.ts +++ b/lib/prisma/src/routes/users.route.ts @@ -1,6 +1,6 @@ import { Router } from 'express'; import { UserController } from '@controllers/users.controller'; -import { CreateUserDto } from '@dtos/users.dto'; +import { CreateUserDto, UpdateUserDto } from '@dtos/users.dto'; import { Routes } from '@interfaces/routes.interface'; import { ValidationMiddleware } from '@middlewares/validation.middleware'; @@ -17,7 +17,7 @@ export class UserRoute implements Routes { this.router.get(`${this.path}`, this.user.getUsers); this.router.get(`${this.path}/:id(\\d+)`, this.user.getUserById); this.router.post(`${this.path}`, ValidationMiddleware(CreateUserDto), this.user.createUser); - this.router.put(`${this.path}/:id(\\d+)`, ValidationMiddleware(CreateUserDto, true), this.user.updateUser); + this.router.put(`${this.path}/:id(\\d+)`, ValidationMiddleware(UpdateUserDto, true), this.user.updateUser); this.router.delete(`${this.path}/:id(\\d+)`, this.user.deleteUser); } }