refactor: relation
This commit is contained in:
parent
977cb5c6a4
commit
273026d735
1 changed files with 17 additions and 30 deletions
|
|
@ -36,6 +36,7 @@ import {
|
||||||
createPermCheck,
|
createPermCheck,
|
||||||
createPermCondition,
|
createPermCondition,
|
||||||
} from "../services/permission";
|
} from "../services/permission";
|
||||||
|
import { connectOrDisconnect, connectOrNot } from "../utils/relation";
|
||||||
|
|
||||||
if (!process.env.MINIO_BUCKET) {
|
if (!process.env.MINIO_BUCKET) {
|
||||||
throw Error("Require MinIO bucket.");
|
throw Error("Require MinIO bucket.");
|
||||||
|
|
@ -231,15 +232,18 @@ export class UserController extends Controller {
|
||||||
) {
|
) {
|
||||||
const where = {
|
const where = {
|
||||||
OR: [
|
OR: [
|
||||||
{ firstName: { contains: query }, zipCode, userType, ...filterStatus(status) },
|
{ firstName: { contains: query } },
|
||||||
{ firstNameEN: { contains: query }, zipCode, userType, ...filterStatus(status) },
|
{ firstNameEN: { contains: query } },
|
||||||
{ lastName: { contains: query }, zipCode, userType, ...filterStatus(status) },
|
{ lastName: { contains: query } },
|
||||||
{ lastNameEN: { contains: query }, zipCode, userType, ...filterStatus(status) },
|
{ lastNameEN: { contains: query } },
|
||||||
{ email: { contains: query }, zipCode, userType, ...filterStatus(status) },
|
{ email: { contains: query } },
|
||||||
{ telephoneNo: { contains: query }, zipCode, userType, ...filterStatus(status) },
|
{ telephoneNo: { contains: query } },
|
||||||
],
|
],
|
||||||
AND: {
|
AND: {
|
||||||
userRole: { not: "system" },
|
userRole: { not: "system" },
|
||||||
|
zipCode,
|
||||||
|
userType,
|
||||||
|
...filterStatus(status),
|
||||||
branch: isSystem(req.user)
|
branch: isSystem(req.user)
|
||||||
? undefined
|
? undefined
|
||||||
: {
|
: {
|
||||||
|
|
@ -414,9 +418,9 @@ export class UserController extends Controller {
|
||||||
statusOrder: +(rest.status === "INACTIVE"),
|
statusOrder: +(rest.status === "INACTIVE"),
|
||||||
username,
|
username,
|
||||||
userRole: role.name,
|
userRole: role.name,
|
||||||
province: { connect: provinceId ? { id: provinceId } : undefined },
|
province: connectOrNot(provinceId),
|
||||||
district: { connect: districtId ? { id: districtId } : undefined },
|
district: connectOrNot(districtId),
|
||||||
subDistrict: { connect: subDistrictId ? { id: subDistrictId } : undefined },
|
subDistrict: connectOrNot(subDistrictId),
|
||||||
branch: {
|
branch: {
|
||||||
create: Array.isArray(branchId)
|
create: Array.isArray(branchId)
|
||||||
? branchId.map((v) => ({
|
? branchId.map((v) => ({
|
||||||
|
|
@ -585,18 +589,9 @@ export class UserController extends Controller {
|
||||||
...rest,
|
...rest,
|
||||||
statusOrder: +(rest.status === "INACTIVE"),
|
statusOrder: +(rest.status === "INACTIVE"),
|
||||||
userRole,
|
userRole,
|
||||||
province: {
|
province: connectOrDisconnect(provinceId),
|
||||||
connect: provinceId ? { id: provinceId } : undefined,
|
district: connectOrDisconnect(districtId),
|
||||||
disconnect: provinceId === null || undefined,
|
subDistrict: connectOrDisconnect(subDistrictId),
|
||||||
},
|
|
||||||
district: {
|
|
||||||
connect: districtId ? { id: districtId } : undefined,
|
|
||||||
disconnect: districtId === null || undefined,
|
|
||||||
},
|
|
||||||
subDistrict: {
|
|
||||||
connect: subDistrictId ? { id: subDistrictId } : undefined,
|
|
||||||
disconnect: subDistrictId === null || undefined,
|
|
||||||
},
|
|
||||||
updatedBy: { connect: { id: req.user.sub } },
|
updatedBy: { connect: { id: req.user.sub } },
|
||||||
},
|
},
|
||||||
where: { id: userId },
|
where: { id: userId },
|
||||||
|
|
@ -697,15 +692,7 @@ async function getUserCheckPerm(user: RequestWithUser["user"], userId: string) {
|
||||||
branch: {
|
branch: {
|
||||||
include: {
|
include: {
|
||||||
branch: {
|
branch: {
|
||||||
include: {
|
include: branchRelationPermInclude(user),
|
||||||
headOffice: {
|
|
||||||
include: {
|
|
||||||
branch: { where: { user: { some: { userId: user.sub } } } },
|
|
||||||
user: { where: { userId: user.sub } },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
user: { where: { userId: user.sub } },
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue