reworked api errors, now returning proper error codes
This commit is contained in:
+4
-9
@@ -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 })))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user