feat: add status filter

This commit is contained in:
Methapon Metanipat 2024-08-16 10:48:56 +07:00
parent 9441c713a2
commit 379b7e5286

View file

@ -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" },