diff --git a/src/controllers/06-request-list-controller.ts b/src/controllers/06-request-list-controller.ts index 55127d1..a6aa2a4 100644 --- a/src/controllers/06-request-list-controller.ts +++ b/src/controllers/06-request-list-controller.ts @@ -4,6 +4,7 @@ import prisma from "../db"; import { Prisma, RequestDataStatus, RequestWorkStatus } from "@prisma/client"; import { createPermCondition } from "../services/permission"; import { queryOrNot } from "../utils/relation"; +import { notFoundError } from "../utils/error"; // User in company can see. const permissionCond = createPermCondition((_) => true); @@ -153,7 +154,9 @@ export class RequestListController extends Controller { include: { service: true, work: true, - product: true, + product: { + include: { document: true }, + }, }, }, }, @@ -163,12 +166,25 @@ export class RequestListController extends Controller { 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}") async getRequestWorkById(@Path() requestWorkId: string) { - return await prisma.requestWork.findFirst({ + const record = await prisma.requestWork.findFirst({ include: { request: { include: { @@ -180,12 +196,26 @@ export class RequestListController extends Controller { include: { service: true, work: true, - product: true, + product: { + include: { + document: true, + }, + }, }, }, }, 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}")