From 379b7e528640b5e5a6e5225e50eb19ae4da97158 Mon Sep 17 00:00:00 2001 From: Methapon Metanipat Date: Fri, 16 Aug 2024 10:48:56 +0700 Subject: [PATCH] feat: add status filter --- src/controllers/user-controller.ts | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/controllers/user-controller.ts b/src/controllers/user-controller.ts index 30b3130..c6cc1ae 100644 --- a/src/controllers/user-controller.ts +++ b/src/controllers/user-controller.ts @@ -197,15 +197,24 @@ export class UserController extends Controller { @Query() query: string = "", @Query() page: number = 1, @Query() pageSize: number = 30, + @Query() status?: Status, ) { + const filterStatus = (val?: Status) => { + if (!val) return {}; + + return val !== Status.CREATED && val !== Status.ACTIVE + ? { status: val } + : { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] }; + }; + const where = { OR: [ - { firstName: { contains: query }, zipCode, userType }, - { firstNameEN: { contains: query }, zipCode, userType }, - { lastName: { contains: query }, zipCode, userType }, - { lastNameEN: { contains: query }, zipCode, userType }, - { email: { contains: query }, zipCode, userType }, - { telephoneNo: { contains: query }, zipCode, userType }, + { firstName: { contains: query }, zipCode, userType, ...filterStatus(status) }, + { firstNameEN: { contains: query }, zipCode, userType, ...filterStatus(status) }, + { lastName: { contains: query }, zipCode, userType, ...filterStatus(status) }, + { lastNameEN: { contains: query }, zipCode, userType, ...filterStatus(status) }, + { email: { contains: query }, zipCode, userType, ...filterStatus(status) }, + { telephoneNo: { contains: query }, zipCode, userType, ...filterStatus(status) }, ], AND: { userRole: { not: "system" },