fix(no-card) penyesuaian filter user privilege configuration
continuous-integration/drone/tag Build is passing Details

pull/2/head devel_2.4
ashar 2024-06-05 16:31:50 +07:00
parent 6165763a0b
commit eb90b43429
4 changed files with 35 additions and 1 deletions

View File

@ -2,5 +2,7 @@ import { BaseFilterEntity } from 'src/core/modules/domain/entities/base-filter.e
export interface FilterUserPrivilegeConfigurationEntity export interface FilterUserPrivilegeConfigurationEntity
extends BaseFilterEntity { extends BaseFilterEntity {
modules: string[];
menus: string[];
user_privilege_ids: string[]; user_privilege_ids: string[];
} }

View File

@ -6,10 +6,16 @@ import {
Param, Param,
RelationParam, RelationParam,
} from 'src/core/modules/domain/entities/base-filter.entity'; } from 'src/core/modules/domain/entities/base-filter.entity';
import { ORDER_TYPE } from 'src/core/strings/constants/base.constants';
@Injectable() @Injectable()
export class IndexUserPrivilegeConfigurationManager extends BaseIndexManager<UserPrivilegeConfigurationEntity> { export class IndexUserPrivilegeConfigurationManager extends BaseIndexManager<UserPrivilegeConfigurationEntity> {
async prepareData(): Promise<void> { async prepareData(): Promise<void> {
Object.assign(this.filterParam, {
order_by: `${this.tableName}.index`,
order_type: ORDER_TYPE.ASC,
limit: 100,
});
return; return;
} }
@ -34,12 +40,24 @@ export class IndexUserPrivilegeConfigurationManager extends BaseIndexManager<Use
} }
get specificFilter(): Param[] { get specificFilter(): Param[] {
return; return [];
} }
setQueryFilter( setQueryFilter(
queryBuilder: SelectQueryBuilder<UserPrivilegeConfigurationEntity>, queryBuilder: SelectQueryBuilder<UserPrivilegeConfigurationEntity>,
): SelectQueryBuilder<UserPrivilegeConfigurationEntity> { ): SelectQueryBuilder<UserPrivilegeConfigurationEntity> {
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) { if (this.filterParam.user_privilege_ids) {
queryBuilder.andWhere(`user_privilege_id In (:...privilegeIds)`, { queryBuilder.andWhere(`user_privilege_id In (:...privilegeIds)`, {
privilegeIds: this.filterParam.user_privilege_ids, privilegeIds: this.filterParam.user_privilege_ids,

View File

@ -7,6 +7,18 @@ export class FilterUserPrivilegeConfigurationDto
extends BaseFilterDto extends BaseFilterDto
implements FilterUserPrivilegeConfigurationEntity 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 }) @ApiProperty({ type: ['string'], required: false })
@Transform((body) => { @Transform((body) => {
return Array.isArray(body.value) ? body.value : [body.value]; return Array.isArray(body.value) ? body.value : [body.value];

View File

@ -7,6 +7,7 @@ import { UserPrivilegeConfigurationDto } from './dto/user-privilege-configuratio
import { UserPrivilegeConfigurationEntity } from '../domain/entities/user-privilege-configuration.entity'; import { UserPrivilegeConfigurationEntity } from '../domain/entities/user-privilege-configuration.entity';
import { FilterUserPrivilegeConfigurationDto } from './dto/filter-user-privilege-configuration.dto'; import { FilterUserPrivilegeConfigurationDto } from './dto/filter-user-privilege-configuration.dto';
import { PaginationResponse } from 'src/core/response/domain/ok-response.interface'; import { PaginationResponse } from 'src/core/response/domain/ok-response.interface';
import { Pagination } from 'src/core/response';
@ApiTags( @ApiTags(
`${MODULE_NAME.USER_PRIVILEGE_CONFIGURATION.split('-').join(' ')} - data`, `${MODULE_NAME.USER_PRIVILEGE_CONFIGURATION.split('-').join(' ')} - data`,
@ -27,6 +28,7 @@ export class UserPrivilegeConfigurationController {
} }
@Get() @Get()
@Pagination()
async index( async index(
@Query() params: FilterUserPrivilegeConfigurationDto, @Query() params: FilterUserPrivilegeConfigurationDto,
): Promise<PaginationResponse<UserPrivilegeConfigurationEntity>> { ): Promise<PaginationResponse<UserPrivilegeConfigurationEntity>> {