feat: add conditional query for customer

This commit is contained in:
Methapon Metanipat 2024-10-11 15:48:49 +07:00
parent 52c97134cb
commit e0c00d4aad

View file

@ -43,6 +43,7 @@ function globalAllow(user: RequestWithUser["user"]) {
return allowList.some((v) => user.roles?.includes(v)); return allowList.some((v) => user.roles?.includes(v));
} }
const permissionCondCompany = createPermCondition((_) => true);
const permissionCond = createPermCondition(globalAllow); const permissionCond = createPermCondition(globalAllow);
const permissionCheck = createPermCheck(globalAllow); const permissionCheck = createPermCheck(globalAllow);
@ -152,6 +153,7 @@ export class CustomerController extends Controller {
@Query() page: number = 1, @Query() page: number = 1,
@Query() pageSize: number = 30, @Query() pageSize: number = 30,
@Query() includeBranch: boolean = false, @Query() includeBranch: boolean = false,
@Query() company: boolean = false,
) { ) {
const where = { const where = {
OR: query OR: query
@ -166,7 +168,11 @@ export class CustomerController extends Controller {
AND: { AND: {
customerType, customerType,
...filterStatus(status), ...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; } satisfies Prisma.CustomerWhereInput;