1use axum::http::StatusCode;
2use axum::response::IntoResponse;
3use axum::Json;
4
5use crate::api::{error_body, ErrorBody};
6use crate::error::ErrorCode;
7
8pub fn error_response(code: ErrorCode, message: impl Into<String>) -> axum::response::Response {
9 let status =
10 StatusCode::from_u16(code.http_status()).unwrap_or(StatusCode::INTERNAL_SERVER_ERROR);
11 error_response_with_status(status, code, message)
12}
13
14pub fn error_response_with_status(
15 status: StatusCode,
16 code: ErrorCode,
17 message: impl Into<String>,
18) -> axum::response::Response {
19 let body: ErrorBody = error_body(code, message);
20 (status, Json(body)).into_response()
21}