22
crates/como_bin/src/error.rs
Normal file
22
crates/como_bin/src/error.rs
Normal file
@@ -0,0 +1,22 @@
|
||||
use axum::{http::StatusCode, response::IntoResponse, Json};
|
||||
use serde_json::json;
|
||||
|
||||
#[allow(dead_code)]
|
||||
#[derive(Debug)]
|
||||
pub enum AppError {
|
||||
WrongCredentials,
|
||||
InternalServerError,
|
||||
}
|
||||
|
||||
impl IntoResponse for AppError {
|
||||
fn into_response(self) -> axum::response::Response {
|
||||
let (status, err_msg) = match self {
|
||||
Self::WrongCredentials => (StatusCode::BAD_REQUEST, "invalid credentials"),
|
||||
Self::InternalServerError => (
|
||||
StatusCode::INTERNAL_SERVER_ERROR,
|
||||
"something went wrong with your request",
|
||||
),
|
||||
};
|
||||
(status, Json(json!({ "error": err_msg }))).into_response()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user