From 7687eae2bbbd29f28e2ec8f240eb0ca85403bf76 Mon Sep 17 00:00:00 2001 From: falendikategar Date: Wed, 23 Oct 2024 10:52:02 +0700 Subject: [PATCH] update: addition of the submitAssessment endpoint and the addition of some permissions --- apps/backend/src/data/permissions.ts | 9 +++++ apps/backend/src/routes/assessments/route.ts | 35 ++++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/apps/backend/src/data/permissions.ts b/apps/backend/src/data/permissions.ts index d938373..f8ac1ef 100644 --- a/apps/backend/src/data/permissions.ts +++ b/apps/backend/src/data/permissions.ts @@ -113,6 +113,15 @@ const permissionsData = [ { code: "assessments.submitAnswer", }, + { + code: "assessments.submitOption", + }, + { + code: "assessments.submitValidation", + }, + { + code: "assessments.submitAssessment", + }, { code: "assessments.updateAnswer", }, diff --git a/apps/backend/src/routes/assessments/route.ts b/apps/backend/src/routes/assessments/route.ts index ce1f6c0..8194ce5 100644 --- a/apps/backend/src/routes/assessments/route.ts +++ b/apps/backend/src/routes/assessments/route.ts @@ -590,7 +590,7 @@ const assessmentsRoute = new Hono() .post( "/submitOption", - // checkPermission("assessments.submitOption"), + checkPermission("assessments.submitOption"), requestValidator("json", optionFormSchema), async (c) => { const optionData = c.req.valid("json"); @@ -648,7 +648,7 @@ const assessmentsRoute = new Hono() .post( "/submitValidation", - // checkPermission("assessments.submitValidation"), + checkPermission("assessments.submitValidation"), requestValidator("json", validationFormSchema), async (c) => { const validationData = c.req.valid("json"); @@ -702,6 +702,37 @@ const assessmentsRoute = new Hono() } ) + .patch( + "/submitAssessment/:id", + checkPermission("assessments.submitAssessment"), + async (c) => { + const assessmentId = c.req.param("id"); + const status = "selesai"; + + const assessment = await db + .select() + .from(assessments) + .where(and(eq(assessments.id, assessmentId),)); + + if (!assessment[0]) { + throw notFound({ + message: "Assessment not found.", + }); + } + + await db + .update(assessments) + .set({ + status, + }) + .where(eq(assessments.id, assessmentId)); + + return c.json({ + message: "Status assessment berhasil diperbarui.", + }); + } + ) + // Update answer in table answers if answer changes .patch( "/:id/updateAnswer",