Skip to main content

koi_common/
http.rs

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}