mlb_api/request/
reqwest.rs1use crate::request::{Error, Result};
2use crate::types::MLBError;
3use serde::de::DeserializeOwned;
4
5#[cfg(not(all(test, debug_assertions)))]
8pub async fn get<T: DeserializeOwned>(url: String) -> Result<T> {
9 let bytes = reqwest::Client::builder().build()?.get(url).send().await?.bytes().await?;
10 let e = match serde_json::from_slice::<'_, T>(&bytes) {
11 Ok(t) => return Ok(t),
12 Err(e) => Error::Serde(e),
13 };
14 Err(Error::MLB(serde_json::from_slice::<'_, MLBError>(&bytes).map_err(|_| e)?))
15}
16
17#[cfg(all(test, debug_assertions))]
20pub async fn get<T: DeserializeOwned>(url: String) -> Result<T> {
21 let bytes = reqwest::Client::builder().build()?.get(url).send().await?.bytes().await?;
22 let mut de = serde_json::Deserializer::from_slice(&bytes);
23 let result: std::result::Result<T, serde_path_to_error::Error<_>> = serde_path_to_error::deserialize(&mut de);
24 let e = match result {
25 Ok(t) => return Ok(t),
26 Err(e) => Error::Serde(e),
27 };
28 Err(Error::MLB(serde_json::from_slice::<'_, MLBError>(&bytes).map_err(|_| e)?))
29}