use serde::{de::DeserializeOwned, Serialize};
use super::EsiApi;
use crate::Error;
impl<'a> EsiApi<'a> {
pub async fn get_from_public_esi<T: DeserializeOwned>(&self, url: &str) -> Result<T, Error> {
let reqwest_client = &self.client.inner.reqwest_client;
let req = reqwest_client.get(url).send().await?;
req.error_for_status_ref()?;
let result: T = req.json().await?;
Ok(result)
}
pub async fn post_to_public_esi<T: DeserializeOwned, U: Serialize + ?Sized>(
&self,
url: &str,
data: &U,
) -> Result<T, Error> {
let reqwest_client = &self.client.inner.reqwest_client;
let req = reqwest_client.post(url).json(data).send().await?;
req.error_for_status_ref()?;
let result: T = req.json().await?;
Ok(result)
}
}