diff --git a/src/client.rs b/src/client.rs index 9cf8358..3d6b862 100644 --- a/src/client.rs +++ b/src/client.rs @@ -9,23 +9,29 @@ use serde::de; pub struct Client { client: ClientWithMiddleware, base_url: Url, + + /// If true AND compiled in debug mode, debug traces will be output for requests and responses + debug: bool, } pub trait ResourceRequest { + async fn is_debug(&self) -> bool; async fn res(self) -> Result; } impl ResourceRequest for RequestBuilder { async fn res(self) -> Result { - // TODO: make this a field on this struct or something? - /* use tracing::debug; let body = self.send().await?.text().await?; - debug!(body); - serde_json::from_str(&body).map_err(|e| e.into()) - */ - self.send().await?.json().await.map_err(|e| e.into()) + if self.is_debug() { + #[cfg(debug_assertions)] + debug!(body); + } + + serde_json::from_str(&body).map_err(|e| e.into()) + + // self.send().await?.json().await.map_err(|e| e.into()) } } @@ -67,4 +73,12 @@ impl Client { pub async fn get(&self, rel_url_path: &str) -> Result { self.request::(Method::GET, rel_url_path).await } + + pub async fn post( + &self, + rel_url_path: &str, + body: &S, + ) -> Result { + self.request::(Method::POST, rel_url_path).await + } } diff --git a/src/tui.rs b/src/tui.rs index 250dad3..c7b9398 100644 --- a/src/tui.rs +++ b/src/tui.rs @@ -54,7 +54,13 @@ impl Tui { eprintln!("{sig:#?}"); println!("{sig:#?}"); info!("{sig:#?}"); - signal_sender.send(Event::Quit).unwrap(); + match signal_sender.send(Event::Quit) { + Ok(_) => {} + Err(_) => { + error!("Failed to send quit signal event"); + // TODO: kill the app + } + } }); let tick_rate = std::time::Duration::from_millis(1000);