sideko_rest_api 0.9.2

Rust API Client
Documentation
use std::fmt::Display;
pub(crate) static _DEFAULT_SERVICE_NAME: &str = "__default_service__";
#[derive(Clone, Debug, Default)]
pub(crate) struct BaseClient {
    pub(crate) base_url: std::collections::HashMap<String, String>,
    pub(crate) client: reqwest::Client,
    pub(crate) auth: std::collections::HashMap<String, super::auth::AuthProvider>,
}
impl BaseClient {
    #[allow(unused)]
    pub fn default_base_url(
        base_url: impl Display,
    ) -> std::collections::HashMap<String, String> {
        std::collections::HashMap::from_iter([
            (_DEFAULT_SERVICE_NAME.to_string(), base_url.to_string()),
        ])
    }
    #[allow(unused)]
    pub fn build_url(&self, endpoint: &str, service: Option<String>) -> String {
        let base = self
            .base_url
            .get(&service.unwrap_or(_DEFAULT_SERVICE_NAME.to_string()))
            .cloned()
            .unwrap_or_default();
        format!("{}/{}", base.trim_end_matches('/'), endpoint.trim_start_matches('/'))
            .trim_end_matches('/')
            .into()
    }
    #[allow(unused)]
    pub async fn apply_auths_to_builder(
        &mut self,
        mut builder: reqwest::RequestBuilder,
        auth_names: &[&str],
    ) -> crate::SdkResult<reqwest::RequestBuilder> {
        for name in auth_names {
            if let Some(provider) = self.auth.get_mut(*name) {
                builder = provider.add_auth(builder).await?;
            }
        }
        Ok(builder)
    }
    #[allow(unused)]
    pub async fn error_for_status(
        &self,
        method: &str,
        res: reqwest::Response,
    ) -> crate::SdkResult<reqwest::Response> {
        if res.error_for_status_ref().is_err() {
            Err(crate::Error::Api(crate::ApiError::new(method, res).await))
        } else {
            Ok(res)
        }
    }
}