From 8cfc0032613c9f2b6d4ce53ad4070cd60f3b457b Mon Sep 17 00:00:00 2001 From: shancheas Date: Tue, 10 Dec 2024 11:57:33 +0700 Subject: [PATCH] feat: add query name filter to items --- src/core/modules/infrastructure/dto/base-filter.dto.ts | 1 + .../item/domain/usecases/managers/index-item.manager.ts | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/core/modules/infrastructure/dto/base-filter.dto.ts b/src/core/modules/infrastructure/dto/base-filter.dto.ts index b149663..a33dec5 100644 --- a/src/core/modules/infrastructure/dto/base-filter.dto.ts +++ b/src/core/modules/infrastructure/dto/base-filter.dto.ts @@ -23,6 +23,7 @@ export class BaseFilterDto implements BaseFilterEntity { @IsNumber() limit = 10; + @ApiProperty({ type: String, required: false }) q: string; @ApiProperty({ type: ['string'], required: false }) diff --git a/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts b/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts index 4da5d1a..3c51840 100644 --- a/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts +++ b/src/modules/item-related/item/domain/usecases/managers/index-item.manager.ts @@ -84,6 +84,12 @@ export class IndexItemManager extends BaseIndexManager { setQueryFilter( queryBuilder: SelectQueryBuilder, ): SelectQueryBuilder { + if (this.filterParam.q) { + queryBuilder.andWhere( + `${this.tableName}.name ILIKE '%${this.filterParam.q}%'`, + ); + } + if (this.filterParam.tenant_ids?.length) { queryBuilder.andWhere(`${this.tableName}.tenant_id In (:...tenantIds)`, { tenantIds: this.filterParam.tenant_ids,