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));
}
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;