pub mod oauth2;
pub use ash_api::apis::configuration as api_config;
pub use ash_api::apis::default_api as api;
pub use ash_api::models as api_models;
use ash_api::apis::configuration::Configuration;
use serde::{Deserialize, Serialize};
use crate::conf::AshConfig;
use crate::console::oauth2::AshConsoleOAuth2Client;
use crate::errors::*;
#[derive(Default, Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AshConsole {
pub api_url: String,
pub oauth2: AshConsoleOAuth2Client,
}
impl AshConsole {
pub fn load(config: Option<&str>) -> Result<AshConsole, AshError> {
let ash_conf = AshConfig::load(config)?;
match ash_conf.ash_console {
Some(console) => Ok(console),
None => Err(ConfigError::NotFound {
target_type: "console".to_string(),
target_value: "Ash".to_string(),
}
.into()),
}
}
pub fn create_api_config_with_access_token(&self, access_token: &str) -> Configuration {
let mut config = Configuration::new();
config.base_path = self.api_url.clone();
config.oauth_access_token = Some(access_token.to_string());
config
}
}