flawless_slack/http_client/
reqwest_http_client.rsuse crate::{HttpClient, HttpClientError};
pub struct ReqwestHttpClient;
impl From<reqwest::Error> for HttpClientError {
fn from(_: reqwest::Error) -> Self {
HttpClientError::HttpError
}
}
impl HttpClient for ReqwestHttpClient {
fn post(&self, url: &str, headers: &[(&str, &str)], payload: &str) -> Result<String, HttpClientError> {
let client = reqwest::blocking::Client::new();
let mut res = client.post(url).body(payload.to_owned());
for (key, value) in headers {
res = res.header(*key, *value);
}
let res = res.send()?.text()?;
Ok(res)
}
fn get(
&self,
url: &str,
headers: &[(&str, &str)],
queries: &[(&str, &str)],
) -> Result<String, HttpClientError> {
let client = reqwest::blocking::Client::new();
let mut res = client.get(url).body("");
for (key, value) in headers {
res = res.header(*key, *value);
}
for (key, value) in queries {
res = res.query(&[(key, value)]);
}
let res = res.send()?.text()?;
Ok(res)
}
}