diff options
-rw-r--r-- | src/abconfig.rs | 10 | ||||
-rw-r--r-- | src/client.rs | 8 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/abconfig.rs b/src/abconfig.rs index c8af6c5..723747c 100644 --- a/src/abconfig.rs +++ b/src/abconfig.rs @@ -16,8 +16,6 @@ use crate::{client::Client, error::Error}; use serde::Deserialize; -use std::collections::HashMap; -use std::iter::FromIterator; /// A struct for storing a key value pair with a category in /// relation to a contact. Typically used to store permissions @@ -56,9 +54,11 @@ pub struct ABConfigRequest { impl ABConfigRequest { pub fn fetch(&self, client: &Client) -> Result<Vec<ABConfig>, Error> { - let data: HashMap<&str, String> = HashMap::from_iter(vec![("abook_id", self.abook_id.to_string())]); - let body = client.fetch_stream("abconfig", &data)?; - Ok(serde_json::from_str(&body)?) + let mut res = client.get("abconfig") + .query(&[("abook_id", self.abook_id.to_string())]) + .send()?; + + Ok(serde_json::from_str(&res.text()?)?) } } diff --git a/src/client.rs b/src/client.rs index 5381286..7a54825 100644 --- a/src/client.rs +++ b/src/client.rs @@ -118,6 +118,14 @@ impl Client { handle_result(res) } + + /// Return a RequestBuilder object that's set up with the correct + /// path and headers for performing a zot api request. + pub fn get(&self, path: &str) -> reqwest::RequestBuilder { + self.inner.get(&self.url(path, &())) + .header(ACCEPT, "application/json") + .basic_auth(self.user.clone(), Some(self.pw.clone())) + } } // A common function for handling the response after a request. |