reworked api errors, now returning proper error codes

This commit is contained in:
2026-01-28 19:51:23 +01:00
parent 30dc7475c2
commit fbf7eea59a
12 changed files with 463 additions and 563 deletions
+4 -9
View File
@@ -5,6 +5,7 @@ use axum::{Extension, http::StatusCode};
use serde::Deserialize;
use crate::auth::{create_jwt, verify_jwt};
use crate::errors::APIError;
#[derive(sqlx::FromRow, serde::Serialize, Deserialize)]
pub struct WsAuthQuery {
@@ -18,12 +19,12 @@ pub fn routes() -> axum::Router {
pub async fn issue_ws_token(
Extension(db): Extension<sqlx::PgPool>,
headers: HeaderMap,
) -> Result<(StatusCode, Json<WsAuthQuery>), (StatusCode, String)> {
) -> Result<(StatusCode, Json<WsAuthQuery>), APIError> {
let claims = verify_jwt(headers)?;
tracing::debug!("Recieved token issue request from user {}", claims.sub);
let token = create_jwt(claims.sub).map_err(|e| (StatusCode::INTERNAL_SERVER_ERROR, e))?;
let token = create_jwt(claims.sub)?;
sqlx::query(
r#"
@@ -33,13 +34,7 @@ pub async fn issue_ws_token(
)
.bind(&token)
.execute(&db)
.await
.map_err(|_| {
(
StatusCode::INTERNAL_SERVER_ERROR,
format!("failed to provide ws token"),
)
})?;
.await?;
Ok((StatusCode::CREATED, Json(WsAuthQuery { token })))
}