diff --git a/src/controllers/ProfileController.ts b/src/controllers/ProfileController.ts index 98f15f81..e9602552 100644 --- a/src/controllers/ProfileController.ts +++ b/src/controllers/ProfileController.ts @@ -205,7 +205,8 @@ export class ProfileController extends Controller { async listProfile( @Query("page") page: number = 1, @Query("pageSize") pageSize: number = 10, - @Query("keyword") keyword: string = "", + @Query() searchField?: "firstName" | "lastName" | "citizenId" | "position", + @Query() searchKeyword: string = "", ) { const [record, total] = await this.profileRepo.findAndCount({ relations: { @@ -215,15 +216,8 @@ export class ProfileController extends Controller { relationship: true, bloodGroup: true, }, - where: [ - { citizenId: Like(`%${keyword}%`) }, - { position: Like(`%${keyword}%`) }, - { prefix: Like(`%${keyword}%`) }, - { firstName: Like(`%${keyword}%`) }, - { lastName: Like(`%${keyword}%`) }, - { email: Like(`%${keyword}%`) }, - { telephoneNumber: Like(`%${keyword}%`) }, - ], + where: + searchField && searchKeyword ? [{ [searchField]: Like(`%${searchKeyword}%`) }] : undefined, order: { createdAt: "ASC" }, skip: (page - 1) * pageSize, take: pageSize,