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 // validationFormSchema: untuk /submitValidation
export const validationFormSchema = z.object({ 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"), validationInformation: z.string().min(1, "Validation information is required"),
}); });
@ -646,12 +647,43 @@ const assessmentsRoute = new Hono<HonoEnv>()
async (c) => { async (c) => {
const validationData = c.req.valid("json"); 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 const updatedAnswer = await db
.update(answers) .update(answers)
.set({ .set({
validationInformation: validationData.validationInformation, 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(); .returning();
return c.json( return c.json(