diff options
Diffstat (limited to 'src/routes/submission.rs')
| -rw-r--r-- | src/routes/submission.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/routes/submission.rs b/src/routes/submission.rs index b3cf2b9..99767c2 100644 --- a/src/routes/submission.rs +++ b/src/routes/submission.rs @@ -1,3 +1,4 @@ +use ammonia::clean_text; use axum::{Json, extract::{Path, State}, http::StatusCode, response::IntoResponse}; use serde::Deserialize; @@ -18,15 +19,22 @@ pub async fn create_submission( ) -> Result<impl IntoResponse, RouteError> { let user_id = claims.sub; + let code_length = request.code.len() as i64; + + let language = clean_text(&request.language); + let details = clean_text(&request.details); + let code = clean_text(&request.code); + match state.database.insert_submission( user_id, request.problem_id, - &request.language, - &request.details, - &request.code + &language, + &details, + &code, + code_length, ) { Ok(submission) => Ok((StatusCode::CREATED, Json(submission))), - Err(_) => Err(RouteError::Internal(format!("unable to insert submission"))) + Err(e) => Err(RouteError::Internal(format!("unable to insert submission {e:?}"))) } } |
