use std::sync::Arc;
pub trait DataClient {
fn new(auth_token: Option<&str>) -> Arc<Self>;
}
pub fn validate_response_status(response: &reqwest::Response) -> Result<(), crate::Error> {
let status = response.status();
if status == reqwest::StatusCode::TOO_MANY_REQUESTS {
return Err(crate::Error::RateLimited(ustr::Ustr::from(&format!(
"HTTP 429 Too Many Requests: {}",
response.url()
))));
}
if !status.is_success() {
return Err(crate::Error::Request(ustr::Ustr::from(&format!(
"HTTP request failed with status {}: {}",
status,
response.url()
))));
}
Ok(())
}