mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-28 12:15:40 +08:00
32 lines
1.3 KiB
Rust
32 lines
1.3 KiB
Rust
use super::types::ApiErrorResponse;
|
|
|
|
impl actix_web::ResponseError for ApiErrorResponse {
|
|
fn status_code(&self) -> reqwest::StatusCode {
|
|
use reqwest::StatusCode;
|
|
|
|
match self {
|
|
Self::Unauthorized(_) => StatusCode::UNAUTHORIZED,
|
|
Self::ForbiddenCommonResource(_) => StatusCode::FORBIDDEN,
|
|
Self::ForbiddenPrivateResource(_) => StatusCode::NOT_FOUND,
|
|
Self::Conflict(_) => StatusCode::CONFLICT,
|
|
Self::Gone(_) => StatusCode::GONE,
|
|
Self::Unprocessable(_) => StatusCode::UNPROCESSABLE_ENTITY,
|
|
Self::InternalServerError(_) => StatusCode::INTERNAL_SERVER_ERROR,
|
|
Self::NotImplemented(_) => StatusCode::NOT_IMPLEMENTED,
|
|
Self::ConnectorError(_, code) => *code,
|
|
Self::MethodNotAllowed(_) => StatusCode::METHOD_NOT_ALLOWED,
|
|
Self::NotFound(_) => StatusCode::NOT_FOUND,
|
|
Self::BadRequest(_) => StatusCode::BAD_REQUEST,
|
|
}
|
|
}
|
|
|
|
fn error_response(&self) -> actix_web::HttpResponse {
|
|
use actix_web::http::header;
|
|
|
|
actix_web::HttpResponseBuilder::new(self.status_code())
|
|
.insert_header((header::CONTENT_TYPE, mime::APPLICATION_JSON))
|
|
.insert_header((header::VIA, "Juspay_Router"))
|
|
.body(self.to_string())
|
|
}
|
|
}
|