2022-01-25 18:47:08 +00:00
|
|
|
use super::ImgurHandle;
|
2022-01-26 18:55:08 +00:00
|
|
|
|
2022-01-26 19:57:51 +00:00
|
|
|
use anyhow::Error;
|
2022-01-26 18:55:08 +00:00
|
|
|
use reqwest::Method;
|
2022-01-25 18:47:08 +00:00
|
|
|
use std::collections::HashMap;
|
|
|
|
|
|
|
|
pub async fn send_api_request(
|
|
|
|
config: &ImgurHandle,
|
|
|
|
method: Method,
|
|
|
|
uri: String,
|
|
|
|
form: Option<HashMap<&str, String>>,
|
2022-01-26 19:57:51 +00:00
|
|
|
) -> Result<reqwest::Response, Error> {
|
2022-01-25 18:47:08 +00:00
|
|
|
let client = &config.client;
|
|
|
|
|
|
|
|
let mut req = client.request(method, uri.as_str());
|
|
|
|
|
|
|
|
const VERSION: Option<&str> = option_env!("CARGO_PKG_VERSION");
|
|
|
|
|
|
|
|
req = req
|
|
|
|
.header("Authorization", format!("Client-ID {}", config.client_id))
|
|
|
|
.header(
|
|
|
|
"User-Agent",
|
|
|
|
format!("Imgur/{:?}", VERSION.unwrap_or("unknown")),
|
|
|
|
);
|
|
|
|
|
|
|
|
if form != None {
|
|
|
|
req = req.form(&form.unwrap())
|
|
|
|
}
|
|
|
|
|
|
|
|
let req = req.build()?;
|
|
|
|
|
2022-01-26 19:57:51 +00:00
|
|
|
client.execute(req).await.map_err(Error::from)
|
2022-01-25 18:47:08 +00:00
|
|
|
}
|