1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use crate::models::routing::*;

pub(crate) trait Routable {
    fn base_url(&self) -> String;
}

pub struct ApiConfiguration {
    pub(crate) auth_configuration: AuthConfiguration,

    pub(crate) default_region: RegionRouting,
    pub(crate) default_platform: PlatformRouting,
}
impl ApiConfiguration {
    pub fn new(auth_configuration: AuthConfiguration, default_region: Option<RegionRouting>, default_platform: Option<PlatformRouting>) -> Self {
        Self {
            auth_configuration,
            default_region: default_region.unwrap_or(RegionRouting::AMERICAS),
            default_platform: default_platform.unwrap_or(PlatformRouting::NA1),
        }
    }
}

pub enum AuthConfiguration {
    ApiKey(String),
    BearerToken(String),
}