fix(no-card) penyesuaian filter user privilege configuration
continuous-integration/drone/tag Build is passing
Details
continuous-integration/drone/tag Build is passing
Details
parent
6165763a0b
commit
eb90b43429
|
@ -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[];
|
||||||
}
|
}
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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];
|
||||||
|
|
|
@ -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>> {
|
||||||
|
|
Loading…
Reference in New Issue