jws-backend/src/controllers/06-request-list-controller.ts

44 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-10-09 15:04:59 +07:00
import { Controller, Delete, Get, Path, Put, Query, Request, Route, Security, Tags } from "tsoa";
import { RequestWithUser } from "../interfaces/user";
import prisma from "../db";
@Route("api/v1/request-list")
@Tags("Request List")
export class RequestListController extends Controller {
@Get()
@Security("keycloak")
async getRequest(
@Request() req: RequestWithUser,
@Query() page: number = 1,
@Query() pageSize: number = 30,
) {
return await prisma.requestWork.findMany({
include: { request: true },
take: pageSize,
skip: (page - 1) * pageSize,
});
}
@Get("{requestId}")
async getRequestById(@Path() requestId: string) {
return await prisma.requestWork.findFirst({
include: { request: true },
where: { id: requestId },
});
}
/** @todo */
@Put("{requestId}")
async updateRequestById(@Request() req: RequestWithUser, @Path() requestId: string) {
return {};
}
/** @todo */
@Delete("{requestId}")
async deleteRequestById(@Request() req: RequestWithUser, @Path() requestId: string) {
return {};
}
}
export class RequestListAttachmentController extends Controller {}