From 2b9788eff72483c6830adf42350a8dfd01786840 Mon Sep 17 00:00:00 2001 From: faris Aljohari <83524184+farisaljohari@users.noreply.github.com> Date: Mon, 30 Sep 2024 02:10:41 -0500 Subject: [PATCH] refactor delete user endpoint --- src/auth/controllers/user-auth.controller.ts | 16 ---------------- src/auth/services/user-auth.service.ts | 12 ------------ src/users/controllers/user.controller.ts | 15 +++++++++++++++ src/users/services/user.service.ts | 11 +++++++++++ 4 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/auth/controllers/user-auth.controller.ts b/src/auth/controllers/user-auth.controller.ts index e650d39..1eee19e 100644 --- a/src/auth/controllers/user-auth.controller.ts +++ b/src/auth/controllers/user-auth.controller.ts @@ -1,10 +1,8 @@ import { Body, Controller, - Delete, Get, HttpStatus, - Param, Post, Req, UseGuards, @@ -51,20 +49,6 @@ export class UserAuthController { }; } - @ApiBearerAuth() - @UseGuards(SuperAdminRoleGuard) - @Delete('user/delete/:id') - async userDelete(@Param('id') id: string) { - await this.userAuthService.deleteUser(id); - return { - statusCode: HttpStatus.OK, - data: { - id, - }, - message: 'User Deleted Successfully', - }; - } - @Post('user/send-otp') async sendOtp(@Body() otpDto: UserOtpDto) { const otpCode = await this.userAuthService.generateOTP(otpDto); diff --git a/src/auth/services/user-auth.service.ts b/src/auth/services/user-auth.service.ts index e709a51..f31c214 100644 --- a/src/auth/services/user-auth.service.ts +++ b/src/auth/services/user-auth.service.ts @@ -1,5 +1,3 @@ -import { RoleTypeRepository } from './../../../libs/common/src/modules/role-type/repositories/role.type.repository'; -import { UserRoleRepository } from './../../../libs/common/src/modules/user/repositories/user.repository'; import { UserRepository } from '../../../libs/common/src/modules/user/repositories'; import { BadRequestException, @@ -31,8 +29,6 @@ export class UserAuthService { private readonly helperHashService: HelperHashService, private readonly authService: AuthService, private readonly emailService: EmailService, - private readonly userRoleRepository: UserRoleRepository, - private readonly roleTypeRepository: RoleTypeRepository, private readonly configService: ConfigService, ) {} @@ -128,14 +124,6 @@ export class UserAuthService { } } - async deleteUser(uuid: string) { - const user = await this.findOneById(uuid); - if (!user) { - throw new BadRequestException('User not found'); - } - return await this.userRepository.update({ uuid }, { isActive: false }); - } - async findOneById(id: string): Promise { return await this.userRepository.findOne({ where: { uuid: id } }); } diff --git a/src/users/controllers/user.controller.ts b/src/users/controllers/user.controller.ts index b088b93..c669f08 100644 --- a/src/users/controllers/user.controller.ts +++ b/src/users/controllers/user.controller.ts @@ -1,6 +1,7 @@ import { Body, Controller, + Delete, Get, HttpException, HttpStatus, @@ -18,6 +19,7 @@ import { UpdateTimezoneDataDto, } from '../dtos'; import { CheckProfilePictureGuard } from 'src/guards/profile.picture.guard'; +import { SuperAdminRoleGuard } from 'src/guards/super.admin.role.guard'; @ApiTags('User Module') @Controller({ @@ -140,4 +142,17 @@ export class UserController { ); } } + @ApiBearerAuth() + @UseGuards(SuperAdminRoleGuard) + @Delete('/:userUuid') + async userDelete(@Param('userUuid') userUuid: string) { + await this.userService.deleteUser(userUuid); + return { + statusCode: HttpStatus.OK, + data: { + userUuid, + }, + message: 'User Deleted Successfully', + }; + } } diff --git a/src/users/services/user.service.ts b/src/users/services/user.service.ts index b035c05..80dad24 100644 --- a/src/users/services/user.service.ts +++ b/src/users/services/user.service.ts @@ -14,6 +14,7 @@ import { UserRepository } from '@app/common/modules/user/repositories'; import { RegionRepository } from '@app/common/modules/region/repositories'; import { TimeZoneRepository } from '@app/common/modules/timezone/repositories'; import { removeBase64Prefix } from '@app/common/helper/removeBase64Prefix'; +import { UserEntity } from '@app/common/modules/user/entities'; @Injectable() export class UserService { @@ -237,4 +238,14 @@ export class UserService { ); } } + async findOneById(id: string): Promise { + return await this.userRepository.findOne({ where: { uuid: id } }); + } + async deleteUser(uuid: string) { + const user = await this.findOneById(uuid); + if (!user) { + throw new BadRequestException('User not found'); + } + return await this.userRepository.update({ uuid }, { isActive: false }); + } }