diff --git a/src/controllers/02-user-controller.ts b/src/controllers/02-user-controller.ts index 53907f7..d2af45f 100644 --- a/src/controllers/02-user-controller.ts +++ b/src/controllers/02-user-controller.ts @@ -36,6 +36,7 @@ import { createPermCheck, createPermCondition, } from "../services/permission"; +import { connectOrDisconnect, connectOrNot } from "../utils/relation"; if (!process.env.MINIO_BUCKET) { throw Error("Require MinIO bucket."); @@ -231,15 +232,18 @@ export class UserController extends Controller { ) { const where = { OR: [ - { 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) }, + { firstName: { contains: query } }, + { firstNameEN: { contains: query } }, + { lastName: { contains: query } }, + { lastNameEN: { contains: query } }, + { email: { contains: query } }, + { telephoneNo: { contains: query } }, ], AND: { userRole: { not: "system" }, + zipCode, + userType, + ...filterStatus(status), branch: isSystem(req.user) ? undefined : { @@ -414,9 +418,9 @@ export class UserController extends Controller { statusOrder: +(rest.status === "INACTIVE"), username, userRole: role.name, - province: { connect: provinceId ? { id: provinceId } : undefined }, - district: { connect: districtId ? { id: districtId } : undefined }, - subDistrict: { connect: subDistrictId ? { id: subDistrictId } : undefined }, + province: connectOrNot(provinceId), + district: connectOrNot(districtId), + subDistrict: connectOrNot(subDistrictId), branch: { create: Array.isArray(branchId) ? branchId.map((v) => ({ @@ -585,18 +589,9 @@ export class UserController extends Controller { ...rest, statusOrder: +(rest.status === "INACTIVE"), userRole, - province: { - connect: provinceId ? { id: provinceId } : undefined, - disconnect: provinceId === null || undefined, - }, - district: { - connect: districtId ? { id: districtId } : undefined, - disconnect: districtId === null || undefined, - }, - subDistrict: { - connect: subDistrictId ? { id: subDistrictId } : undefined, - disconnect: subDistrictId === null || undefined, - }, + province: connectOrDisconnect(provinceId), + district: connectOrDisconnect(districtId), + subDistrict: connectOrDisconnect(subDistrictId), updatedBy: { connect: { id: req.user.sub } }, }, where: { id: userId }, @@ -697,15 +692,7 @@ async function getUserCheckPerm(user: RequestWithUser["user"], userId: string) { branch: { include: { branch: { - include: { - headOffice: { - include: { - branch: { where: { user: { some: { userId: user.sub } } } }, - user: { where: { userId: user.sub } }, - }, - }, - user: { where: { userId: user.sub } }, - }, + include: branchRelationPermInclude(user), }, }, },