Skip to content

Commit ff9d379

Browse files
committed
dev: edit api to pass-through underlying error
1 parent 8955927 commit ff9d379

File tree

2 files changed

+24
-22
lines changed

2 files changed

+24
-22
lines changed

src/apis/handlers.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ pub async fn add_torrent_to_whitelist_handler(
6666
match InfoHash::from_str(&info_hash.0) {
6767
Err(_) => invalid_info_hash_param_response(&info_hash.0),
6868
Ok(info_hash) => match tracker.add_torrent_to_whitelist(&info_hash).await {
69-
Ok(..) => ok_response(),
70-
Err(..) => failed_to_whitelist_torrent_response(),
69+
Ok(_) => ok_response(),
70+
Err(e) => failed_to_whitelist_torrent_response(e),
7171
},
7272
}
7373
}
@@ -79,24 +79,24 @@ pub async fn remove_torrent_from_whitelist_handler(
7979
match InfoHash::from_str(&info_hash.0) {
8080
Err(_) => invalid_info_hash_param_response(&info_hash.0),
8181
Ok(info_hash) => match tracker.remove_torrent_from_whitelist(&info_hash).await {
82-
Ok(..) => ok_response(),
83-
Err(..) => failed_to_remove_torrent_from_whitelist_response(),
82+
Ok(_) => ok_response(),
83+
Err(e) => failed_to_remove_torrent_from_whitelist_response(e),
8484
},
8585
}
8686
}
8787

8888
pub async fn reload_whitelist_handler(State(tracker): State<Arc<Tracker>>) -> Response {
8989
match tracker.load_whitelist().await {
90-
Ok(..) => ok_response(),
91-
Err(..) => failed_to_reload_whitelist_response(),
90+
Ok(_) => ok_response(),
91+
Err(e) => failed_to_reload_whitelist_response(e),
9292
}
9393
}
9494

9595
pub async fn generate_auth_key_handler(State(tracker): State<Arc<Tracker>>, Path(seconds_valid_or_key): Path<u64>) -> Response {
9696
let seconds_valid = seconds_valid_or_key;
9797
match tracker.generate_auth_key(Duration::from_secs(seconds_valid)).await {
9898
Ok(auth_key) => auth_key_response(&AuthKey::from(auth_key)),
99-
Err(_) => failed_to_generate_key_response(),
99+
Err(e) => failed_to_generate_key_response(e),
100100
}
101101
}
102102

@@ -111,15 +111,15 @@ pub async fn delete_auth_key_handler(
111111
Err(_) => invalid_auth_key_param_response(&seconds_valid_or_key.0),
112112
Ok(key_id) => match tracker.remove_auth_key(&key_id.to_string()).await {
113113
Ok(_) => ok_response(),
114-
Err(_) => failed_to_delete_key_response(),
114+
Err(e) => failed_to_delete_key_response(e),
115115
},
116116
}
117117
}
118118

119119
pub async fn reload_keys_handler(State(tracker): State<Arc<Tracker>>) -> Response {
120120
match tracker.load_keys().await {
121-
Ok(..) => ok_response(),
122-
Err(..) => failed_to_reload_keys_response(),
121+
Ok(_) => ok_response(),
122+
Err(e) => failed_to_reload_keys_response(e),
123123
}
124124
}
125125

src/apis/responses.rs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
use std::error::Error;
2+
13
use axum::http::{header, StatusCode};
24
use axum::response::{IntoResponse, Json, Response};
35
use serde::Serialize;
@@ -110,33 +112,33 @@ pub fn torrent_not_known_response() -> Response {
110112
}
111113

112114
#[must_use]
113-
pub fn failed_to_remove_torrent_from_whitelist_response() -> Response {
114-
unhandled_rejection_response("failed to remove torrent from whitelist".to_string())
115+
pub fn failed_to_remove_torrent_from_whitelist_response<E: Error>(e: E) -> Response {
116+
unhandled_rejection_response(format!("failed to remove torrent from whitelist: {e}"))
115117
}
116118

117119
#[must_use]
118-
pub fn failed_to_whitelist_torrent_response() -> Response {
119-
unhandled_rejection_response("failed to whitelist torrent".to_string())
120+
pub fn failed_to_whitelist_torrent_response<E: Error>(e: E) -> Response {
121+
unhandled_rejection_response(format!("failed to whitelist torrent: {e}"))
120122
}
121123

122124
#[must_use]
123-
pub fn failed_to_reload_whitelist_response() -> Response {
124-
unhandled_rejection_response("failed to reload whitelist".to_string())
125+
pub fn failed_to_reload_whitelist_response<E: Error>(e: E) -> Response {
126+
unhandled_rejection_response(format!("failed to reload whitelist: {e}"))
125127
}
126128

127129
#[must_use]
128-
pub fn failed_to_generate_key_response() -> Response {
129-
unhandled_rejection_response("failed to generate key".to_string())
130+
pub fn failed_to_generate_key_response<E: Error>(e: E) -> Response {
131+
unhandled_rejection_response(format!("failed to generate key: {e}"))
130132
}
131133

132134
#[must_use]
133-
pub fn failed_to_delete_key_response() -> Response {
134-
unhandled_rejection_response("failed to delete key".to_string())
135+
pub fn failed_to_delete_key_response<E: Error>(e: E) -> Response {
136+
unhandled_rejection_response(format!("failed to delete key: {e}"))
135137
}
136138

137139
#[must_use]
138-
pub fn failed_to_reload_keys_response() -> Response {
139-
unhandled_rejection_response("failed to reload keys".to_string())
140+
pub fn failed_to_reload_keys_response<E: Error>(e: E) -> Response {
141+
unhandled_rejection_response(format!("failed to reload keys: {e}"))
140142
}
141143

142144
/// This error response is to keep backward compatibility with the old Warp API.

0 commit comments

Comments
 (0)