diff --git a/crates/librqbit/src/api_error.rs b/crates/librqbit/src/api_error.rs index 3d787db..7f7e4f4 100644 --- a/crates/librqbit/src/api_error.rs +++ b/crates/librqbit/src/api_error.rs @@ -11,10 +11,10 @@ pub struct ApiError { } impl ApiError { - pub fn new_from_string(status: StatusCode, text: String) -> Self { + pub fn new_from_anyhow(status: StatusCode, error: anyhow::Error) -> Self { Self { status: Some(status), - kind: ApiErrorKind::Other(anyhow::anyhow!("{}", text)), + kind: ApiErrorKind::Other(error), plaintext: false, } } diff --git a/crates/librqbit/webui/src/rqbit-web.tsx b/crates/librqbit/webui/src/rqbit-web.tsx index dcd1032..0fff84f 100644 --- a/crates/librqbit/webui/src/rqbit-web.tsx +++ b/crates/librqbit/webui/src/rqbit-web.tsx @@ -401,7 +401,6 @@ const ErrorDetails = (props: { details: ApiErrorDetails | null | undefined }) => {details.statusText &&

{details.statusText}

}
{details.text}
- } const ErrorComponent = (props: { error: Error | null, remove?: () => void }) => { diff --git a/desktop/src-tauri/src/main.rs b/desktop/src-tauri/src/main.rs index 52946a2..e09aaf3 100644 --- a/desktop/src-tauri/src/main.rs +++ b/desktop/src-tauri/src/main.rs @@ -1,6 +1,7 @@ // Prevents additional console window on Windows in release, DO NOT REMOVE!! #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] +use anyhow::Context; use http::StatusCode; use librqbit::{ api::{ @@ -39,9 +40,10 @@ async fn torrent_create_from_base64_file( opts: Option, ) -> Result { use base64::{engine::general_purpose, Engine as _}; - let bytes = general_purpose::STANDARD_NO_PAD + let bytes = general_purpose::STANDARD .decode(&contents) - .map_err(|_| ApiError::new_from_string(StatusCode::BAD_REQUEST, "invalid base64".into()))?; + .context("invalid base64") + .map_err(|e| ApiError::new_from_anyhow(StatusCode::BAD_REQUEST, e))?; state .api .api_add_torrent(