diff options
| author | Daniel Hader <[email protected]> | 2026-06-03 22:32:09 -0500 |
|---|---|---|
| committer | Daniel Hader <[email protected]> | 2026-06-03 22:32:09 -0500 |
| commit | 328d0cd912dfa5dbda53a09ecdfeaeb93504b560 (patch) | |
| tree | 5dbe78ebbe4c9df5b8bbcf4530a7f912dbb1b7a6 /src/routes/submission.rs | |
| parent | 51fac3f3b6f73b649ba8109b37d8ff311b905cd4 (diff) | |
submission logic and fetching submissions
Diffstat (limited to 'src/routes/submission.rs')
| -rw-r--r-- | src/routes/submission.rs | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/routes/submission.rs b/src/routes/submission.rs index 50bb53d..4cfad5c 100644 --- a/src/routes/submission.rs +++ b/src/routes/submission.rs @@ -1,4 +1,4 @@ -use axum::{Json, extract::State, http::StatusCode, response::IntoResponse}; +use axum::{Json, extract::{Path, State}, http::StatusCode, response::IntoResponse}; use serde::Deserialize; use crate::{AppState, routes::{auth::AuthUser, errors::RouteError}}; @@ -29,3 +29,22 @@ pub async fn create_submission( Err(_) => Err(RouteError::Internal(format!("unable to insert submission"))) } } + +pub async fn get_submissions_by_problem_id( + State(state): State<AppState>, + Path(problem_id): Path<i64> +) -> Result<impl IntoResponse, RouteError> { + let submissions = state.database.fetch_submissions_by_problem_id(problem_id) + .map_err(|_| RouteError::Internal("unable to fetch submissions".into()))?; + Ok(Json(submissions)) +} + +pub async fn get_display_submissions( + State(state): State<AppState>, + Path(problem_id): Path<i64> +) -> Result<impl IntoResponse, RouteError> { + let submissions = state.database.fetch_display_submissions(problem_id) + .map_err(|e| RouteError::Internal(format!("unable to fetch submissions: {e:?}")))?; + Ok(Json(submissions)) +} + |
