diff --git a/apps/backend/src/routes/assessmentRequest/route.ts b/apps/backend/src/routes/assessmentRequest/route.ts index aa33c27..0645ebf 100644 --- a/apps/backend/src/routes/assessmentRequest/route.ts +++ b/apps/backend/src/routes/assessmentRequest/route.ts @@ -130,20 +130,37 @@ const assessmentRequestRoute = new Hono() throw new HTTPException(404, { message: "Respondent not found or unauthorized." }); } - // Membuat permohonan asesmen baru - const newAssessment = await db + // Cek jika ada permohonan dengan status "dalam pengerjaan" + const existingAssessment = await db + .select() + .from(assessments) + .where( + and( + eq(assessments.respondentId, respondentId), + eq(assessments.status, "dalam pengerjaan") + ) + );console.log(existingAssessment); + + if (existingAssessment.length) { + return c.json({ message: "Asesmen sedang dalam pengerjaan, tidak bisa membuat permohonan baru." }, 400); + }else{ + // Membuat permohonan asesmen baru + const newAssessment = await db .insert(assessments) .values({ - id: createId(), - respondentId, - status: "menunggu konfirmasi", // Status awal permohonan - verifiedBy: null, - verifiedAt: null, - createdAt: new Date(), - }) - .returning(); + id: createId(), + respondentId, + status: "menunggu konfirmasi", // Status awal permohonan + reviewedAt: null, + reviewedBy: null, + verifiedBy: null, + verifiedAt: null, + createdAt: new Date(), + }) + .returning(); - return c.json({ message: "Successfully submitted the assessment request", data: newAssessment }, 201); + return c.json({ message: "Successfully submitted the assessment request", data: newAssessment }, 201); + } } ) diff --git a/apps/frontend/src/modules/assessmentRequest/queries/assessmentRequestQueries.ts b/apps/frontend/src/modules/assessmentRequest/queries/assessmentRequestQueries.ts index f09dfa8..13dc2e4 100644 --- a/apps/frontend/src/modules/assessmentRequest/queries/assessmentRequestQueries.ts +++ b/apps/frontend/src/modules/assessmentRequest/queries/assessmentRequestQueries.ts @@ -23,7 +23,7 @@ export const createAssessmentRequest = async ({ respondentsId }: { respondentsId }); if (!response.ok) { - throw new Error("Failed to create assessment request"); + throw new Error("Asesemen sedang berlangsung, Selesaikan terlebih dahulu."); } return await response.json();