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 08e60c6f2f - Show all commits

View File

@ -585,46 +585,56 @@ const assessmentsRoute = new Hono<HonoEnv>()
// checkPermission("assessments.submitAnswer"),
requestValidator("json", optionFormSchema),
async (c) => {
const optionData = c.req.valid("json");
// Cek apakah jawaban sudah ada berdasarkan assessmentId
const existingAnswer = await db
.select()
.from(answers)
.where(eq(answers.assessmentId, optionData.assessmentId))
.limit(1);
let answer;
if (existingAnswer.length > 0) {
// Update jika jawaban sudah ada
answer = await db
.update(answers)
.set({ optionId: optionData.optionId }) // Ubah ke pilihan baru
.where(eq(answers.assessmentId, optionData.assessmentId))
.returning();
} else {
// Insert jika belum ada jawaban
answer = await db
.insert(answers)
.values({
optionId: optionData.optionId,
assessmentId: optionData.assessmentId,
isFlagged: optionData.isFlagged ?? false,
filename: optionData.filename ?? null,
validationInformation: "", // Placeholder untuk not-null constraint
})
.returning();
}
return c.json(
{
message: "Option submitted successfully",
answer: answer[0],
},
201
);
const optionData = c.req.valid("json");
// Cek apakah jawaban sudah ada berdasarkan assessmentId dan optionId
const existingAnswer = await db
.select()
.from(answers)
.where(
sql`answers.assessmentId = ${optionData.assessmentId}
AND answers.optionId = ${optionData.optionId}`
) // Asumsi optionId berkaitan dengan questionId
.limit(1);
let answer;
if (existingAnswer.length > 0) {
// Update jika jawaban sudah ada
answer = await db
.update(answers)
.set({
optionId: optionData.optionId, // Ubah ke pilihan baru
isFlagged: optionData.isFlagged ?? existingAnswer[0].isFlagged, // Pertahankan flag jika tidak diubah
filename: optionData.filename ?? existingAnswer[0].filename // Pertahankan filename jika tidak diubah
})
.where(
sql`answers.assessmentId = ${optionData.assessmentId}
AND answers.optionId = ${optionData.optionId}`
) // Tambahkan kondisi untuk questionId
.returning();
} else {
// Insert jika belum ada jawaban
answer = await db
.insert(answers)
.values({
optionId: optionData.optionId,
assessmentId: optionData.assessmentId,
isFlagged: optionData.isFlagged ?? false,
filename: optionData.filename ?? null,
validationInformation: "", // Placeholder untuk not-null constraint
})
.returning();
}
return c.json(
{
message: "Option submitted successfully",
answer: answer[0],
},
201
);
}
)
)
.post(
"/submitValidation",