summaryrefslogtreecommitdiff
path: root/src/routes/submission.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/submission.rs')
-rw-r--r--src/routes/submission.rs16
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:?}")))
}
}