feat: add endpoint for getting only its main data

This commit is contained in:
Methapon Metanipat 2024-11-14 10:23:44 +07:00
parent e009f68846
commit 0826ba8bd4

View file

@ -7,7 +7,50 @@ import { createPermCondition } from "../services/permission";
// User in company can see.
const permissionCond = createPermCondition((_) => true);
@Route("api/v1/request-list")
@Route("/api/v1/request")
@Tags("Request List")
export class RequestDataController extends Controller {
@Get()
@Security("keycloak")
async getRequestData(
@Request() req: RequestWithUser,
@Query() page: number = 1,
@Query() pageSize: number = 30,
) {
const where = {
quotation: {
customerBranch: {
customer: {
registeredBranch: { OR: permissionCond(req.user) },
},
},
},
} satisfies Prisma.RequestDataWhereInput;
const [result, total] = await prisma.$transaction([
prisma.requestData.findMany({
where,
include: {
quotation: {
include: {
customerBranch: {
include: { customer: true },
},
},
},
employee: true,
},
take: pageSize,
skip: (page - 1) * pageSize,
}),
prisma.requestData.count({ where }),
]);
return { result, page, pageSize, total };
}
}
@Route("/api/v1/request-list")
@Tags("Request List")
export class RequestListController extends Controller {
@Get()
@ -16,9 +59,11 @@ export class RequestListController extends Controller {
@Request() req: RequestWithUser,
@Query() page: number = 1,
@Query() pageSize: number = 30,
@Query() requestDataId?: string,
) {
const where = {
request: {
id: requestDataId,
quotation: {
customerBranch: {
customer: {