feat: conditionally hide correct_answers count based on show_answers_after_completion setting

Update quiz submission response to respect the show_answers_after_completion setting by conditionally including the correct_answers count. When show_answers_after_completion is false, correct_answers is now undefined instead of being exposed.
This commit is contained in:
JakkrapartXD 2026-01-30 17:51:33 +07:00
parent bf5d939910
commit 4ff57555a2
2 changed files with 6 additions and 3 deletions

View file

@ -1231,6 +1231,9 @@ export class CoursesStudentService {
enrollmentProgress = result.enrollmentProgress; enrollmentProgress = result.enrollmentProgress;
} }
// Build response based on show_answers_after_completion setting
const showAnswers = quiz.show_answers_after_completion;
return { return {
code: 200, code: 200,
message: isPassed ? 'Quiz passed!' : 'Quiz completed', message: isPassed ? 'Quiz passed!' : 'Quiz completed',
@ -1240,13 +1243,13 @@ export class CoursesStudentService {
score: earnedScore, score: earnedScore,
total_score: totalScore, total_score: totalScore,
total_questions: quiz.questions.length, total_questions: quiz.questions.length,
correct_answers: correctAnswers, correct_answers: showAnswers ? correctAnswers : undefined,
is_passed: isPassed, is_passed: isPassed,
passing_score: quiz.passing_score, passing_score: quiz.passing_score,
attempt_number: attemptNumber, attempt_number: attemptNumber,
started_at: quizAttempt.started_at, started_at: quizAttempt.started_at,
completed_at: quizAttempt.completed_at!, completed_at: quizAttempt.completed_at!,
answers_review: quiz.show_answers_after_completion ? answersReview : undefined, answers_review: showAnswers ? answersReview : undefined,
course_progress_percentage: enrollmentProgress?.progress_percentage, course_progress_percentage: enrollmentProgress?.progress_percentage,
is_course_completed: enrollmentProgress?.is_course_completed, is_course_completed: enrollmentProgress?.is_course_completed,
}, },

View file

@ -351,7 +351,7 @@ export interface SubmitQuizResponse {
score: number; score: number;
total_score: number; total_score: number;
total_questions: number; total_questions: number;
correct_answers: number; correct_answers?: number;
is_passed: boolean; is_passed: boolean;
passing_score: number; passing_score: number;
attempt_number: number; attempt_number: number;