From a1f9271664ce80fb274a667ccea870d3a7d3cb6b Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Mon, 16 Dec 2024 11:27:10 +0700 Subject: [PATCH] feat: implement complete task endpoint --- src/controllers/07-task-controller.ts | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/controllers/07-task-controller.ts b/src/controllers/07-task-controller.ts index 6e22f77..557445f 100644 --- a/src/controllers/07-task-controller.ts +++ b/src/controllers/07-task-controller.ts @@ -499,7 +499,30 @@ export class TaskActionController extends Controller { @Post("complete") @Security("keycloak") - async completeTaskOrder(@Request() req: RequestWithUser, @Path() taskOrderId: string) {} + async completeTaskOrder( + @Request() req: RequestWithUser, + @Path() taskOrderId: string, + @Query() submitUserId?: string, + ) { + submitUserId = submitUserId ?? req.user.sub; + + const record = await prisma.taskOrder.findFirst({ where: { id: taskOrderId } }); + + if (!record) throw notFoundError("Task Order"); + + await prisma.$transaction([ + prisma.task.updateMany({ + where: { + taskOrderId: taskOrderId, + taskStatus: TaskStatus.Validate, + requestWorkStep: { responsibleUserId: submitUserId }, + }, + data: { + taskStatus: TaskStatus.Complete, + }, + }), + ]); + } } @Route("api/v1/task-order/{taskOrderId}")