From 8032906a2d01d5847407dd30fccd88e66c67e709 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Thu, 26 Dec 2024 10:34:28 +0700 Subject: [PATCH] refactor: wrap inside transaction --- src/controllers/06-request-list-controller.ts | 58 +++++++++---------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/controllers/06-request-list-controller.ts b/src/controllers/06-request-list-controller.ts index 73fc037..621f410 100644 --- a/src/controllers/06-request-list-controller.ts +++ b/src/controllers/06-request-list-controller.ts @@ -506,40 +506,40 @@ export class RequestListController extends Controller { ) { if (!payload.responsibleUserId) payload.responsibleUserId = undefined; - const record = await prisma.requestWorkStepStatus.upsert({ - include: { - requestWork: true, - }, - where: { - step_requestWorkId: { + await prisma.$transaction(async (tx) => { + const record = await tx.requestWorkStepStatus.upsert({ + include: { + requestWork: true, + }, + where: { + step_requestWorkId: { + step: step, + requestWorkId, + }, + }, + create: { + ...payload, step: step, requestWorkId, }, - }, - create: { - ...payload, - step: step, - requestWorkId, - }, - update: payload, - }); + update: payload, + }); - switch (payload.workStatus) { - case "InProgress": - case "Waiting": - case "Validate": - case "Completed": - case "Ended": - await prisma.requestData.update({ - where: { - id: record.requestWork.requestDataId, - }, - data: { requestDataStatus: "InProgress" }, - }); - break; - } + switch (payload.workStatus) { + case "InProgress": + case "Waiting": + case "Validate": + case "Completed": + case "Ended": + await tx.requestData.update({ + where: { + id: record.requestWork.requestDataId, + }, + data: { requestDataStatus: "InProgress" }, + }); + break; + } - await prisma.$transaction(async (tx) => { const requestList = await tx.requestData.findMany({ include: { requestWork: {