From 53251ac2143b2be70a9c81777035b6ca79bee480 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Wed, 4 Dec 2024 15:27:36 +0700 Subject: [PATCH] feat: add support for complex query for user --- src/controllers/02-user-controller.ts | 45 ++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/src/controllers/02-user-controller.ts b/src/controllers/02-user-controller.ts index 0450d02..cb6f3a0 100644 --- a/src/controllers/02-user-controller.ts +++ b/src/controllers/02-user-controller.ts @@ -263,6 +263,34 @@ export class UserController extends Controller { @Query() pageSize: number = 30, @Query() status?: Status, @Query() responsibleDistrictId?: string, + ) { + return this.getUserByCriteria( + req, + userType, + includeBranch, + query, + page, + pageSize, + status, + responsibleDistrictId, + ); + } + + @Post("list") + @Security("keycloak") + async getUserByCriteria( + @Request() req: RequestWithUser, + @Query() userType?: UserType, + @Query() includeBranch: boolean = false, + @Query() query: string = "", + @Query() page: number = 1, + @Query() pageSize: number = 30, + @Query() status?: Status, + @Query() responsibleDistrictId?: string, + @Body() + body?: { + userId?: string[]; + }, ) { const area = responsibleDistrictId ? await prisma.employmentOffice.findMany({ @@ -293,11 +321,18 @@ export class UserController extends Controller { ...whereAddressQuery(query), ]), AND: { - responsibleArea: area - ? { - some: { area: { in: area.map((v) => v.id) } }, - } - : undefined, + OR: [ + { + responsibleArea: area + ? { + some: { area: { in: area.map((v) => v.id) } }, + } + : undefined, + }, + { + id: body?.userId ? { in: body.userId } : undefined, + }, + ], userRole: { not: "system" }, userType, ...filterStatus(status),