From d18d59054a67206cba62f90a54cb04f6b26b6397 Mon Sep 17 00:00:00 2001 From: AINDUSTRIES Date: Tue, 28 Jul 2026 20:20:10 +0200 Subject: [PATCH] Added http errors for user apis --- src/error.rs | 4 ++++ src/users.rs | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/error.rs b/src/error.rs index 9286782..f483aeb 100644 --- a/src/error.rs +++ b/src/error.rs @@ -5,12 +5,16 @@ use reqwest::StatusCode; pub enum AppError { InternalError(String), + OpenIdError(String), + Unauthorised } impl IntoResponse for AppError { fn into_response(self) -> axum::response::Response { let (status, message) = match self { AppError::InternalError(msg) => (StatusCode::INTERNAL_SERVER_ERROR, msg), + AppError::OpenIdError(msg) => (StatusCode::UNPROCESSABLE_ENTITY, msg), + AppError::Unauthorised => (StatusCode::UNAUTHORIZED, "Unauthorised (did you login?)".into()) }; (status, message).into_response() } diff --git a/src/users.rs b/src/users.rs index c9b10e1..1373764 100644 --- a/src/users.rs +++ b/src/users.rs @@ -156,16 +156,16 @@ pub async fn login( State(pool): State, Query(mut info): Query, session: Session, -) -> Result<&'static str, AppError> { +) -> Result<(), AppError> { if !info.is_valid().await? { - return Ok("nok"); + return Err(AppError::OpenIdError("Some query parameters are erronous or lacking.".into())); } let steamid = info .identity .replace("https://steamcommunity.com/openid/id/", ""); let user = User::from_steamid(&pool, steamid).await?; session.insert("uuid", user.id).await?; - Ok("ok") + Ok(()) } pub async fn logout(session: Session) -> Result<(), AppError> { @@ -177,11 +177,11 @@ pub async fn logout(session: Session) -> Result<(), AppError> { pub async fn me( State(pool): State, session: Session, -) -> Result>, AppError> { +) -> Result, AppError> { if let Some(uuid) = session.get("uuid").await? { let user = User::fetch_id(&pool, uuid).await?; - Ok(Json(Some(user))) + Ok(Json(user)) } else { - Ok(Json(None)) + Err(AppError::Unauthorised) } }