diff --git a/src/controllers/01-branch-controller.ts b/src/controllers/01-branch-controller.ts index 939749b..c788b9e 100644 --- a/src/controllers/01-branch-controller.ts +++ b/src/controllers/01-branch-controller.ts @@ -22,6 +22,7 @@ import minio from "../services/minio"; import { isSystem } from "../utils/keycloak"; import { deleteFile, fileLocation, listFile } from "../utils/minio"; import { createPermCheck } from "../services/permission"; +import { filterStatus } from "../services/prisma"; if (!process.env.MINIO_BUCKET) { throw Error("Require MinIO bucket."); @@ -217,12 +218,14 @@ export class BranchController extends Controller { @Query() headOfficeId?: string, @Query() includeHead?: boolean, @Query() tree?: boolean, + @Query() status?: Status, @Query() query: string = "", @Query() page: number = 1, @Query() pageSize: number = 30, ) { const where = { AND: { + ...filterStatus(status), zipCode, headOfficeId: headOfficeId ?? (filter === "head" || tree ? null : undefined), NOT: { headOfficeId: filter === "sub" && !headOfficeId ? null : undefined }, diff --git a/src/services/prisma.ts b/src/services/prisma.ts new file mode 100644 index 0000000..6cac75e --- /dev/null +++ b/src/services/prisma.ts @@ -0,0 +1,9 @@ +import { Status } from "@prisma/client"; + +export function filterStatus(val?: Status) { + if (!val) return {}; + + return val !== Status.CREATED && val !== Status.ACTIVE + ? { status: val } + : { OR: [{ status: Status.CREATED }, { status: Status.ACTIVE }] }; +}