Module exercises

Module exercises 

Source
Expand description

Controllers for requests starting with /api/v0/main-frontend/exercises.

StructsΒ§

CsvColumnDefinition πŸ”’
ExerciseAnswersCsvExportRequestItem πŸ”’
ExerciseCsvExportQuery
ExerciseCsvExportTaskOption
ExerciseDefinitionsCsvExportRequestItem πŸ”’
ExerciseSubmissions
ResetExercisesPayload

ConstantsΒ§

EXERCISE_SERVICE_CSV_EXPORT_BATCH_SIZE πŸ”’

FunctionsΒ§

_add_routes
Add a route for each controller in this module.
build_column_index_map πŸ”’
Builds key -> column index map for final columns.
build_final_columns πŸ”’
Merges base and service columns ensuring unique keys and mapping; errors on duplicate original service keys or final name collisions.
build_service_endpoint_url πŸ”’
Builds final CSV endpoint URL using internally preferred base URL.
csv_endpoint_is_supported πŸ”’
Returns true if the endpoint path is non-empty.
csv_writer_into_bytes πŸ”’
Finalizes writer into bytes and maps CSV errors to ControllerError.
export_exercise_task_answers_csv πŸ”’
GET /api/v0/main-frontend/exercises/:exercise_id/export-answers-csv - Exports all answers for one exercise task as CSV using the task’s exercise service.
export_exercise_task_definitions_csv πŸ”’
GET /api/v0/main-frontend/exercises/:exercise_id/export-definitions-csv - Exports one exercise task definition as CSV using the task’s exercise service.
fetch_exercise_service_and_info πŸ”’
Fetches exercise service from DB and service info via HTTP; prefers internal_url, falls back to public_url.
get_csv_export_endpoint_path πŸ”’
Parses and validates endpoint path or returns BadRequest if missing/empty.
get_exercise πŸ”’
GET /api/v0/main-frontend/exercises/:exercise_id - Returns a single exercise.
get_exercise_answers_requiring_attention πŸ”’
GET /api/v0/main-frontend/exercises/:exercise_id/answers-requiring-attention - Returns an exercise’s answers requiring attention.
get_exercise_csv_export_task_options πŸ”’
GET /api/v0/main-frontend/exercises/:exercise_id/csv-export-task-options - Returns available exercise tasks and CSV export support flags for each task’s exercise service.
get_exercise_submissions πŸ”’
GET /api/v0/main-frontend/exercises/:exercise_id/submissions - Returns an exercise’s submissions.
get_exercise_submissions_for_user πŸ”’
GET /api/v0/main-frontend/exercises/:exercise_id/submissions/user/:user_id - Returns an exercise’s submissions for a user.
get_exercises_by_course_id
GET /api/v0/main-frontend/exercises/:course_id/exercises-by-course-id - Returns all exercises for a course with course_id
get_selected_task πŸ”’
Selects task by id or returns BadRequest if not found in list.
reset_exercises_for_selected_users
POST /api/v0/main-frontend/exercises/:course_id/reset-exercises-for-selected-users - Resets all selected exercises for selected users and then logs the resets to exercise_reset_logs table
scalar_json_to_csv_value πŸ”’
Converts scalar JSON to CSV string; errors on array/object.
write_csv_rows πŸ”’
Writes CSV rows merging base_row and service rows; validates keys against mapping.