Pull Request branch dev-clone to main #1
|
|
@ -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"),
|
||||
});
|
||||
|
||||
|
|
@ -646,12 +647,43 @@ const assessmentsRoute = new Hono<HonoEnv>()
|
|||
async (c) => {
|
||||
const validationData = c.req.valid("json");
|
||||
|
||||
// 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);
|
||||
|
||||
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(eq(answers.assessmentId, String(validationData.assessmentId)))
|
||||
.where(
|
||||
sql`answers."assessmentId" = ${validationData.assessmentId}
|
||||
AND answers."optionId" IN (
|
||||
SELECT id FROM options WHERE "questionId" = ${validationData.questionId}
|
||||
)`
|
||||
)
|
||||
.returning();
|
||||
|
||||
return c.json(
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user