From eb90b43429bc2262a31942fa82a6ef221de767af Mon Sep 17 00:00:00 2001 From: ashar Date: Wed, 5 Jun 2024 16:31:50 +0700 Subject: [PATCH] fix(no-card) penyesuaian filter user privilege configuration --- ...ter-user-privilege-configuration.entity.ts | 2 ++ ...ex-user-privilege-configuration.manager.ts | 20 ++++++++++++++++++- ...filter-user-privilege-configuration.dto.ts | 12 +++++++++++ ...user-privilege-configuration.controller.ts | 2 ++ 4 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/modules/user-related/user-privilege/domain/entities/filter-user-privilege-configuration.entity.ts b/src/modules/user-related/user-privilege/domain/entities/filter-user-privilege-configuration.entity.ts index 15e0096..dfb8cd8 100644 --- a/src/modules/user-related/user-privilege/domain/entities/filter-user-privilege-configuration.entity.ts +++ b/src/modules/user-related/user-privilege/domain/entities/filter-user-privilege-configuration.entity.ts @@ -2,5 +2,7 @@ import { BaseFilterEntity } from 'src/core/modules/domain/entities/base-filter.e export interface FilterUserPrivilegeConfigurationEntity extends BaseFilterEntity { + modules: string[]; + menus: string[]; user_privilege_ids: string[]; } diff --git a/src/modules/user-related/user-privilege/domain/usecases/user-privilege-configuration/managers/index-user-privilege-configuration.manager.ts b/src/modules/user-related/user-privilege/domain/usecases/user-privilege-configuration/managers/index-user-privilege-configuration.manager.ts index 1095fd9..a8b25fe 100644 --- a/src/modules/user-related/user-privilege/domain/usecases/user-privilege-configuration/managers/index-user-privilege-configuration.manager.ts +++ b/src/modules/user-related/user-privilege/domain/usecases/user-privilege-configuration/managers/index-user-privilege-configuration.manager.ts @@ -6,10 +6,16 @@ import { Param, RelationParam, } from 'src/core/modules/domain/entities/base-filter.entity'; +import { ORDER_TYPE } from 'src/core/strings/constants/base.constants'; @Injectable() export class IndexUserPrivilegeConfigurationManager extends BaseIndexManager { async prepareData(): Promise { + Object.assign(this.filterParam, { + order_by: `${this.tableName}.index`, + order_type: ORDER_TYPE.ASC, + limit: 100, + }); return; } @@ -34,12 +40,24 @@ export class IndexUserPrivilegeConfigurationManager extends BaseIndexManager, ): SelectQueryBuilder { + if (this.filterParam.modules) { + queryBuilder.andWhere('module In (:...modules)', { + modules: this.filterParam.modules, + }); + } + + if (this.filterParam.menus) { + queryBuilder.andWhere('menu In (:...menus)', { + menus: this.filterParam.menus, + }); + } + if (this.filterParam.user_privilege_ids) { queryBuilder.andWhere(`user_privilege_id In (:...privilegeIds)`, { privilegeIds: this.filterParam.user_privilege_ids, diff --git a/src/modules/user-related/user-privilege/infrastructure/dto/filter-user-privilege-configuration.dto.ts b/src/modules/user-related/user-privilege/infrastructure/dto/filter-user-privilege-configuration.dto.ts index 5a4f625..c2b1a40 100644 --- a/src/modules/user-related/user-privilege/infrastructure/dto/filter-user-privilege-configuration.dto.ts +++ b/src/modules/user-related/user-privilege/infrastructure/dto/filter-user-privilege-configuration.dto.ts @@ -7,6 +7,18 @@ export class FilterUserPrivilegeConfigurationDto extends BaseFilterDto implements FilterUserPrivilegeConfigurationEntity { + @ApiProperty({ type: ['string'], required: false }) + @Transform((body) => { + return Array.isArray(body.value) ? body.value : [body.value]; + }) + modules: string[]; + + @ApiProperty({ type: ['string'], required: false }) + @Transform((body) => { + return Array.isArray(body.value) ? body.value : [body.value]; + }) + menus: string[]; + @ApiProperty({ type: ['string'], required: false }) @Transform((body) => { return Array.isArray(body.value) ? body.value : [body.value]; diff --git a/src/modules/user-related/user-privilege/infrastructure/user-privilege-configuration.controller.ts b/src/modules/user-related/user-privilege/infrastructure/user-privilege-configuration.controller.ts index 8786f87..36e97ba 100644 --- a/src/modules/user-related/user-privilege/infrastructure/user-privilege-configuration.controller.ts +++ b/src/modules/user-related/user-privilege/infrastructure/user-privilege-configuration.controller.ts @@ -7,6 +7,7 @@ import { UserPrivilegeConfigurationDto } from './dto/user-privilege-configuratio import { UserPrivilegeConfigurationEntity } from '../domain/entities/user-privilege-configuration.entity'; import { FilterUserPrivilegeConfigurationDto } from './dto/filter-user-privilege-configuration.dto'; import { PaginationResponse } from 'src/core/response/domain/ok-response.interface'; +import { Pagination } from 'src/core/response'; @ApiTags( `${MODULE_NAME.USER_PRIVILEGE_CONFIGURATION.split('-').join(' ')} - data`, @@ -27,6 +28,7 @@ export class UserPrivilegeConfigurationController { } @Get() + @Pagination() async index( @Query() params: FilterUserPrivilegeConfigurationDto, ): Promise> {