From 649d61697221263bf9c98de38db410e7995abf06 Mon Sep 17 00:00:00 2001 From: Igor Katson Date: Thu, 8 Dec 2022 20:58:23 +0000 Subject: [PATCH] Serde errors --- crates/librqbit/src/http_api_error.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/librqbit/src/http_api_error.rs b/crates/librqbit/src/http_api_error.rs index 523e8cb..f70fe40 100644 --- a/crates/librqbit/src/http_api_error.rs +++ b/crates/librqbit/src/http_api_error.rs @@ -18,12 +18,18 @@ impl ApiError { kind: ApiErrorKind::TorrentNotFound(torrent_id), } } + pub const fn dht_disabled() -> Self { Self { status: Some(StatusCode::NOT_FOUND), kind: ApiErrorKind::DhtDisabled, } } + + pub fn status(&self) -> StatusCode { + self.status.unwrap_or(StatusCode::INTERNAL_SERVER_ERROR) + } + pub fn with_status(self, status: StatusCode) -> Self { Self { status: Some(status), @@ -80,10 +86,7 @@ impl Serialize for ApiError { ApiErrorKind::Other(_) => "internal_error", }, human_readable: format!("{self}"), - status: self - .status - .unwrap_or(StatusCode::INTERNAL_SERVER_ERROR) - .as_u16(), + status: self.status().as_u16(), ..Default::default() }; match &self.kind { @@ -126,10 +129,7 @@ impl std::fmt::Display for ApiError { impl IntoResponse for ApiError { fn into_response(self) -> Response { let mut response = axum::Json(&self).into_response(); - *response.status_mut() = match self.status { - Some(s) => s, - None => StatusCode::INTERNAL_SERVER_ERROR, - }; + *response.status_mut() = self.status(); response } }