Pull Request branch dev-clone to main #1

Merged
gitea merged 429 commits from dev-clone into main 2024-12-23 09:31:34 +00:00
Showing only changes of commit 66f29aed8f - Show all commits

View File

@ -35,7 +35,8 @@ export const optionFormSchema = z.object({
// validationFormSchema: untuk /submitValidation
export const validationFormSchema = z.object({
assessmentId: z.number(),
assessmentId: z.string().min(1),
questionId: z.string().min(1),
validationInformation: z.string().min(1, "Validation information is required"),
});
@ -644,23 +645,54 @@ const assessmentsRoute = new Hono<HonoEnv>()
// checkPermission("assessments.submitValidation"),
requestValidator("json", validationFormSchema),
async (c) => {
const validationData = c.req.valid("json");
const validationData = c.req.valid("json");
const updatedAnswer = await db
.update(answers)
.set({
validationInformation: validationData.validationInformation,
})
.where(eq(answers.assessmentId, String(validationData.assessmentId)))
.returning();
// Cek apakah jawaban ada berdasarkan assessmentId dan questionId
const existingAnswer = await db
.select()
.from(answers)
.leftJoin(options, eq(answers.optionId, options.id))
.leftJoin(questions, eq(options.questionId, questions.id))
.where(
sql`answers."assessmentId" = ${validationData.assessmentId}
AND questions.id = ${validationData.questionId}`
)
.limit(1);
return c.json(
{
message: "Validation information updated successfully",
answer: updatedAnswer[0],
},
200
);
if (existingAnswer.length === 0) {
return c.json(
{
message: "No existing answer found for the given assessmentId and questionId.",
},
404
);
}
// Dapatkan tanggal dan waktu saat ini
const currentDate = new Date();
// Update dengan melakukan JOIN yang sama
const updatedAnswer = await db
.update(answers)
.set({
validationInformation: validationData.validationInformation,
updatedAt: currentDate,
})
.where(
sql`answers."assessmentId" = ${validationData.assessmentId}
AND answers."optionId" IN (
SELECT id FROM options WHERE "questionId" = ${validationData.questionId}
)`
)
.returning();
return c.json(
{
message: "Validation information updated successfully",
answer: updatedAnswer[0],
},
200
);
}
)