summaryrefslogtreecommitdiff
path: root/src/routes/submission.rs
diff options
context:
space:
mode:
authorDaniel Hader <[email protected]>2026-06-03 22:32:09 -0500
committerDaniel Hader <[email protected]>2026-06-03 22:32:09 -0500
commit328d0cd912dfa5dbda53a09ecdfeaeb93504b560 (patch)
tree5dbe78ebbe4c9df5b8bbcf4530a7f912dbb1b7a6 /src/routes/submission.rs
parent51fac3f3b6f73b649ba8109b37d8ff311b905cd4 (diff)
submission logic and fetching submissions
Diffstat (limited to 'src/routes/submission.rs')
-rw-r--r--src/routes/submission.rs21
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))
+}
+