feat: add relation document to request work

This commit is contained in:
Methapon Metanipat 2024-11-18 10:44:13 +07:00
parent 20361c597d
commit 026bf44bc7

View file

@ -4,6 +4,7 @@ import prisma from "../db";
import { Prisma, RequestDataStatus, RequestWorkStatus } from "@prisma/client"; import { Prisma, RequestDataStatus, RequestWorkStatus } from "@prisma/client";
import { createPermCondition } from "../services/permission"; import { createPermCondition } from "../services/permission";
import { queryOrNot } from "../utils/relation"; import { queryOrNot } from "../utils/relation";
import { notFoundError } from "../utils/error";
// User in company can see. // User in company can see.
const permissionCond = createPermCondition((_) => true); const permissionCond = createPermCondition((_) => true);
@ -153,7 +154,9 @@ export class RequestListController extends Controller {
include: { include: {
service: true, service: true,
work: true, work: true,
product: true, product: {
include: { document: true },
},
}, },
}, },
}, },
@ -163,12 +166,25 @@ export class RequestListController extends Controller {
prisma.requestWork.count({ where }), prisma.requestWork.count({ where }),
]); ]);
return { result, page, pageSize, total }; return {
result: result.map((v) => {
return Object.assign(v, {
productService: Object.assign(v.productService, {
product: Object.assign(v.productService.product, {
document: v.productService.product.document.map((doc) => doc.name),
}),
}),
});
}),
page,
pageSize,
total,
};
} }
@Get("{requestWorkId}") @Get("{requestWorkId}")
async getRequestWorkById(@Path() requestWorkId: string) { async getRequestWorkById(@Path() requestWorkId: string) {
return await prisma.requestWork.findFirst({ const record = await prisma.requestWork.findFirst({
include: { include: {
request: { request: {
include: { include: {
@ -180,12 +196,26 @@ export class RequestListController extends Controller {
include: { include: {
service: true, service: true,
work: true, work: true,
product: true, product: {
include: {
document: true,
},
},
}, },
}, },
}, },
where: { id: requestWorkId }, where: { id: requestWorkId },
}); });
if (!record) throw notFoundError("Request Work");
return Object.assign(record, {
productService: Object.assign(record.productService, {
product: Object.assign(record.productService.product, {
document: record.productService.product.document.map((doc) => doc.name),
}),
}),
});
} }
@Put("{requestWorkId}") @Put("{requestWorkId}")