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.