update: add questionId to getAnswers and getAllAnswers endpoints in assessments

This commit is contained in:
falendikategar 2024-11-07 11:23:37 +07:00
parent 663c3039bc
commit f3eaf16df8

View File

@ -393,6 +393,7 @@ const assessmentsRoute = new Hono<HonoEnv>()
.select({ .select({
id: answers.id, id: answers.id,
assessmentId: answers.assessmentId, assessmentId: answers.assessmentId,
questionId: options.questionId,
optionId: answers.optionId, optionId: answers.optionId,
isFlagged: answers.isFlagged, isFlagged: answers.isFlagged,
filename: answers.filename, filename: answers.filename,
@ -400,6 +401,7 @@ const assessmentsRoute = new Hono<HonoEnv>()
fullCount: totalCountQuery, fullCount: totalCountQuery,
}) })
.from(answers) .from(answers)
.leftJoin(options, eq(answers.optionId, options.id))
.where( .where(
and( and(
eq(answers.assessmentId, assessmentId), // Filter by assessmentId eq(answers.assessmentId, assessmentId), // Filter by assessmentId
@ -435,21 +437,19 @@ const assessmentsRoute = new Hono<HonoEnv>()
async (c) => { async (c) => {
const assessmentId = c.req.param("assessmentId"); // Retrieve assessmentId from the URL const assessmentId = c.req.param("assessmentId"); // Retrieve assessmentId from the URL
// if (!assessmentId) { // Query to retrieve answers for the specific assessmentId, including the associated questionId
// return c.json({ error: "assessmentId is required" }, 400);
// }
// Query to retrieve answers for the specific assessmentId
const result = await db const result = await db
.select({ .select({
id: answers.id, id: answers.id,
assessmentId: answers.assessmentId, assessmentId: answers.assessmentId,
questionId: options.questionId, // Get the questionId from the options table
optionId: answers.optionId, optionId: answers.optionId,
isFlagged: answers.isFlagged, isFlagged: answers.isFlagged,
filename: answers.filename, filename: answers.filename,
validationInformation: answers.validationInformation, validationInformation: answers.validationInformation,
}) })
.from(answers) .from(answers)
.leftJoin(options, eq(answers.optionId, options.id)) // Join with the options table
.where(eq(answers.assessmentId, assessmentId)); // Filter by assessmentId .where(eq(answers.assessmentId, assessmentId)); // Filter by assessmentId
return c.json({ return c.json({