use crate::client::HTTPClient;
use reqwest::header::HeaderValue;
use std::sync::Arc;
pub struct UbiClient {
http_client: Arc<HTTPClient>,
token: String,
pub kc: crate::commands::kc::KCClient,
pub project: crate::commands::project::Project,
}
impl UbiClient {
fn inner_client(base_url: &str, version: &str, token: &str) -> UbiClient {
let mut headers = reqwest::header::HeaderMap::new();
headers.insert(
"content-type",
HeaderValue::from_str("application/json").unwrap(),
);
headers.insert(
"Authorization",
HeaderValue::from_str(&format!("Bearer {}", token)).unwrap(),
);
let client = reqwest::ClientBuilder::new()
.default_headers(headers)
.build()
.unwrap();
let client = Arc::new(HTTPClient::new(base_url, client, version));
UbiClient {
http_client: client.clone(),
token: token.to_string(),
kc: crate::commands::kc::KCClient::new(client.clone()),
project: crate::commands::project::Project::new(client.clone()),
}
}
pub fn new(base_url: &str, version: &str, token: &str) -> UbiClient {
UbiClient::inner_client(base_url, version, token)
}
}