From 52c82a9a4136ed10403ab6b83cbac06ed9546381 Mon Sep 17 00:00:00 2001 From: Firman Ramdhani <33869609+firmanramdhani@users.noreply.github.com> Date: Wed, 11 Sep 2024 16:43:03 +0700 Subject: [PATCH] feat(SPG-953): penyesuaian API Create dan Update pengguna baru dengan menambahkan opsi admin antrian --- .../auth/domain/managers/login.manager.ts | 3 +++ .../usecases/managers/create-user.manager.ts | 5 ----- .../usecases/managers/detail-user.manager.ts | 1 + .../domain/usecases/managers/index-user.manager.ts | 1 + .../usecases/managers/update-user.manager.ts | 9 --------- .../user/infrastructure/dto/update-user.dto.ts | 14 +++----------- .../user/infrastructure/dto/user.dto.ts | 14 +++----------- 7 files changed, 11 insertions(+), 36 deletions(-) diff --git a/src/modules/configuration/auth/domain/managers/login.manager.ts b/src/modules/configuration/auth/domain/managers/login.manager.ts index d6ab1b3..bc1b26f 100644 --- a/src/modules/configuration/auth/domain/managers/login.manager.ts +++ b/src/modules/configuration/auth/domain/managers/login.manager.ts @@ -13,6 +13,8 @@ import { EventTopics } from 'src/core/strings/constants/interface.constants'; import { UserModel } from 'src/modules/user-related/user/data/models/user.model'; import { UserEntity } from 'src/modules/user-related/user/domain/entities/user.entity'; import { UserLoginEvent } from '../entities/login.event'; +import { Not } from 'typeorm'; +import { UserRole } from 'src/modules/user-related/user/constants'; @Injectable() export class LoginManager extends BaseCustomManager { @@ -36,6 +38,7 @@ export class LoginManager extends BaseCustomManager { where: { username: this.data.username, status: STATUS.ACTIVE, + role: Not(UserRole.QUEUE_ADMIN), }, relations: [ 'user_privilege', diff --git a/src/modules/user-related/user/domain/usecases/managers/create-user.manager.ts b/src/modules/user-related/user/domain/usecases/managers/create-user.manager.ts index ba2c477..f57e40d 100644 --- a/src/modules/user-related/user/domain/usecases/managers/create-user.manager.ts +++ b/src/modules/user-related/user/domain/usecases/managers/create-user.manager.ts @@ -15,12 +15,7 @@ import { SALT_OR_ROUNDS } from 'src/core/strings/constants/base.constants'; @Injectable() export class CreateUserManager extends BaseCreateManager { async beforeProcess(): Promise { - let role = UserRole.STAFF; - if (this.data.is_super_admin || !this.data.user_privilege) - role = UserRole.SUPERADMIN; - Object.assign(this.data, { - role: role, password: await hashPassword(this.data.password, SALT_OR_ROUNDS), }); diff --git a/src/modules/user-related/user/domain/usecases/managers/detail-user.manager.ts b/src/modules/user-related/user/domain/usecases/managers/detail-user.manager.ts index 7e28045..7a69f00 100644 --- a/src/modules/user-related/user/domain/usecases/managers/detail-user.manager.ts +++ b/src/modules/user-related/user/domain/usecases/managers/detail-user.manager.ts @@ -36,6 +36,7 @@ export class DetailUserManager extends BaseDetailManager { `${this.tableName}.status`, `${this.tableName}.name`, `${this.tableName}.username`, + `${this.tableName}.role`, `${this.tableName}.created_at`, `${this.tableName}.creator_name`, `${this.tableName}.updated_at`, diff --git a/src/modules/user-related/user/domain/usecases/managers/index-user.manager.ts b/src/modules/user-related/user/domain/usecases/managers/index-user.manager.ts index 1d6869c..dbabb32 100644 --- a/src/modules/user-related/user/domain/usecases/managers/index-user.manager.ts +++ b/src/modules/user-related/user/domain/usecases/managers/index-user.manager.ts @@ -41,6 +41,7 @@ export class IndexUserManager extends BaseIndexManager { `${this.tableName}.status`, `${this.tableName}.name`, `${this.tableName}.username`, + `${this.tableName}.role`, `${this.tableName}.created_at`, `${this.tableName}.creator_name`, `${this.tableName}.updated_at`, diff --git a/src/modules/user-related/user/domain/usecases/managers/update-user.manager.ts b/src/modules/user-related/user/domain/usecases/managers/update-user.manager.ts index 360bd70..3644a63 100644 --- a/src/modules/user-related/user/domain/usecases/managers/update-user.manager.ts +++ b/src/modules/user-related/user/domain/usecases/managers/update-user.manager.ts @@ -8,7 +8,6 @@ import { columnUniques, validateRelations, } from 'src/core/strings/constants/interface.constants'; -import { UserRole } from '../../../constants'; @Injectable() export class UpdateUserManager extends BaseUpdateManager { @@ -17,14 +16,6 @@ export class UpdateUserManager extends BaseUpdateManager { } async beforeProcess(): Promise { - let role = UserRole.STAFF; - if (this.data.is_super_admin || !this.data.user_privilege) - role = UserRole.SUPERADMIN; - - Object.assign(this.data, { - role: role, - }); - return; } diff --git a/src/modules/user-related/user/infrastructure/dto/update-user.dto.ts b/src/modules/user-related/user/infrastructure/dto/update-user.dto.ts index e26664d..d2daca3 100644 --- a/src/modules/user-related/user/infrastructure/dto/update-user.dto.ts +++ b/src/modules/user-related/user/infrastructure/dto/update-user.dto.ts @@ -15,14 +15,9 @@ export class UpdateUserDto extends BaseStatusDto implements UserEntity { @IsString() username: string; - @ApiProperty({ - name: 'is_super_admin', - type: Boolean, - required: true, - example: false, - }) - @IsBoolean() - is_super_admin: boolean; + @ApiProperty({ name: 'role', required: true, example: UserRole.STAFF }) + @IsString() + role: UserRole; @ApiProperty({ name: 'user_privilege', @@ -45,9 +40,6 @@ export class UpdateUserDto extends BaseStatusDto implements UserEntity { @Exclude() password: string; - @Exclude() - role: UserRole; - @Exclude() refresh_token: string; } diff --git a/src/modules/user-related/user/infrastructure/dto/user.dto.ts b/src/modules/user-related/user/infrastructure/dto/user.dto.ts index 8d96616..97156f4 100644 --- a/src/modules/user-related/user/infrastructure/dto/user.dto.ts +++ b/src/modules/user-related/user/infrastructure/dto/user.dto.ts @@ -31,14 +31,9 @@ export class UserDto extends BaseStatusDto implements UserEntity { @ValidateIf((body) => body.user_privilege) user_privilege: UserPrivilegeModel; - @ApiProperty({ - name: 'is_super_admin', - type: Boolean, - required: true, - example: false, - }) - @IsBoolean() - is_super_admin: boolean; + @ApiProperty({ name: 'role', required: true, example: UserRole.STAFF }) + @IsString() + role: UserRole; @Exclude() share_margin: number; @@ -46,9 +41,6 @@ export class UserDto extends BaseStatusDto implements UserEntity { @Exclude() email: string; - @Exclude() - role: UserRole; - @Exclude() refresh_token: string; }