From e0c00d4aada24d0aad8980336b3ee92fea9c5b1c Mon Sep 17 00:00:00 2001 From: Methapon Metanipat Date: Fri, 11 Oct 2024 15:48:49 +0700 Subject: [PATCH] feat: add conditional query for customer --- src/controllers/03-customer-controller.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/controllers/03-customer-controller.ts b/src/controllers/03-customer-controller.ts index 87e708a..3860629 100644 --- a/src/controllers/03-customer-controller.ts +++ b/src/controllers/03-customer-controller.ts @@ -43,6 +43,7 @@ function globalAllow(user: RequestWithUser["user"]) { return allowList.some((v) => user.roles?.includes(v)); } +const permissionCondCompany = createPermCondition((_) => true); const permissionCond = createPermCondition(globalAllow); const permissionCheck = createPermCheck(globalAllow); @@ -152,6 +153,7 @@ export class CustomerController extends Controller { @Query() page: number = 1, @Query() pageSize: number = 30, @Query() includeBranch: boolean = false, + @Query() company: boolean = false, ) { const where = { OR: query @@ -166,7 +168,11 @@ export class CustomerController extends Controller { AND: { customerType, ...filterStatus(status), - registeredBranch: isSystem(req.user) ? undefined : { OR: permissionCond(req.user) }, + registeredBranch: isSystem(req.user) + ? undefined + : { + OR: company ? permissionCondCompany(req.user) : permissionCond(req.user), + }, }, } satisfies Prisma.CustomerWhereInput;