Skip to main content

process_submission

Function process_submission 

Source
pub async fn process_submission(
    conn: &mut PgConnection,
    user_id: Uuid,
    exercise: Exercise,
    submission: &StudentExerciseSlideSubmission,
    jwt_key: Arc<JwtKey>,
    file_store: &dyn FileStore,
    app_conf: &ApplicationConfiguration,
) -> Result<StudentExerciseSlideSubmissionResult, ControllerError>
Expand description

Records and grades one slide submission, having established that its answers may claim the uploads they name.

Owns the transaction the ownership checks need: the unlocked check runs first, so a submit that may not name its uploads costs no grading hop, and the locked re-check runs inside the transaction that records the submission, before anything is written to it.