Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 35 additions & 20 deletions src/modules/tracking_assessment/tracking_assessment.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -657,31 +657,51 @@ export class TrackingAssessmentService {
contentId_text = `${contentId_text},'${contentId}'`;
}
}
//courseId

//courseId - optional
let courseIdArray = searchFilter?.courseId;
let courseId_text = '';
for (let i = 0; i < courseIdArray.length; i++) {
let courseId = courseIdArray[i];
if (i == 0) {
courseId_text = `${courseId_text}'${courseId}'`;
} else {
courseId_text = `${courseId_text},'${courseId}'`;
let hasCourseId = courseIdArray && courseIdArray.length > 0;
if (hasCourseId) {
for (let i = 0; i < courseIdArray.length; i++) {
let courseId = courseIdArray[i];
if (i == 0) {
courseId_text = `${courseId_text}'${courseId}'`;
} else {
courseId_text = `${courseId_text},'${courseId}'`;
}
}
}
//unitId

//unitId - optional
let unitIdArray = searchFilter?.unitId;
let unitId_text = '';
for (let i = 0; i < unitIdArray.length; i++) {
let unitId = unitIdArray[i];
if (i == 0) {
unitId_text = `${unitId_text}'${unitId}'`;
} else {
unitId_text = `${unitId_text},'${unitId}'`;
let hasUnitId = unitIdArray && unitIdArray.length > 0;
if (hasUnitId) {
for (let i = 0; i < unitIdArray.length; i++) {
let unitId = unitIdArray[i];
if (i == 0) {
unitId_text = `${unitId_text}'${unitId}'`;
} else {
unitId_text = `${unitId_text},'${unitId}'`;
}
}
}

let userIdArray = searchFilter?.userId;
for (let i = 0; i < userIdArray.length; i++) {
let userId = userIdArray[i];

// Build dynamic WHERE clause
let whereConditions = `"evaluatedBy" IS DISTINCT FROM 'AI' AND "userId" = $1`;
if (hasCourseId) {
whereConditions += ` AND "courseId" IN (${courseId_text})`;
}
if (hasUnitId) {
whereConditions += ` AND "unitId" IN (${unitId_text})`;
}
whereConditions += ` AND "contentId" IN (${contentId_text}) AND "tenantId" = $2`;

const result = await this.dataSource.query(
`WITH latest_assessment AS (
SELECT
Expand All @@ -702,12 +722,7 @@ export class TrackingAssessmentService {
FROM
assessment_tracking
WHERE
"evaluatedBy" IS DISTINCT FROM 'AI' AND
"userId" = $1
AND "courseId" IN (${courseId_text})
AND "unitId" IN (${unitId_text})
AND "contentId" IN (${contentId_text})
AND "tenantId" = $2
${whereConditions}
)
SELECT
"assessmentTrackingId",
Expand Down