diff --git a/src/controllers/06-request-list-controller.ts b/src/controllers/06-request-list-controller.ts index 83ed235..a62ac5a 100644 --- a/src/controllers/06-request-list-controller.ts +++ b/src/controllers/06-request-list-controller.ts @@ -1,4 +1,4 @@ -import { Prisma, RequestDataStatus, RequestWorkStatus } from "@prisma/client"; +import { Prisma, RequestDataStatus, RequestWorkStatus, TaskStatus } from "@prisma/client"; import { Body, Controller, @@ -6,6 +6,7 @@ import { Get, Head, Path, + Post, Put, Query, Request, @@ -58,6 +59,7 @@ export class RequestDataController extends Controller { [RequestDataStatus.Pending]: 0, [RequestDataStatus.InProgress]: 0, [RequestDataStatus.Completed]: 0, + [RequestDataStatus.Canceled]: 0, }, ); } @@ -172,6 +174,37 @@ export class RequestDataController extends Controller { } } +@Route("/api/v1/request-data/{requestDataId}") +@Tags("Request List") +export class RequestDataActionController extends Controller { + @Post("cancel") + @Security("keycloak") + async cancelRequestData(@Path() requestDataId: string) { + await prisma.$transaction([ + prisma.requestData.update({ + where: { id: requestDataId }, + data: { + requestDataStatus: RequestDataStatus.Canceled, + }, + }), + prisma.requestWorkStepStatus.updateMany({ + where: { requestWork: { requestDataId } }, + data: { + workStatus: RequestWorkStatus.Canceled, + }, + }), + prisma.taskOrder.updateMany({ + where: { + taskList: { + every: { workStatus: RequestWorkStatus.Canceled }, + }, + }, + data: { taskStatus: TaskStatus.Canceled }, + }), + ]); + } +} + @Route("/api/v1/request-work") @Tags("Request List") export class RequestListController extends Controller { diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index f1e58bf..d77e7b7 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -345,10 +345,6 @@ export class TaskActionController extends Controller { @Post("complete") @Security("keycloak") async completeTaskOrder(@Request() req: RequestWithUser, @Path() taskId: string) {} - - @Post("cancel") - @Security("keycloak") - async cancelTaskOrder(@Request() req: RequestWithUser, @Path() taskId: string) {} } @Route("api/v1/task-order/{taskId}")