1use crate::error::UpstreamError;
2
3pub async fn deserialize<T: serde::de::DeserializeOwned>(
4 resp: reqwest::Response,
5) -> Result<T, UpstreamError> {
6 if resp.status().is_success() {
7 match resp.json::<T>().await {
8 Ok(t) => {
9 return Ok(t);
10 }
11 Err(err) => {
12 return Err(UpstreamError::default_with_message(err.to_string()));
13 }
14 }
15 }
16
17 match resp.json::<UpstreamError>().await {
18 Ok(ue) => Err(ue),
19 Err(err) => Err(UpstreamError::default_with_message(err.to_string())),
20 }
21}