enable setting client builder in config

This commit is contained in:
Mingwei Samuel 2019-11-02 22:42:14 -07:00
parent eac7e27f95
commit a074b5ebed
3 changed files with 15 additions and 6 deletions

View file

@ -12,7 +12,7 @@ pub struct RiotApiConfig {
pub(crate) retries: u8, pub(crate) retries: u8,
pub(crate) burst_pct: f32, pub(crate) burst_pct: f32,
pub(crate) duration_overhead: Duration, pub(crate) duration_overhead: Duration,
pub(crate) reqwest_client: ClientBuilder, pub(crate) client_builder: Option<ClientBuilder>,
} }
impl RiotApiConfig { impl RiotApiConfig {
@ -42,7 +42,7 @@ impl RiotApiConfig {
retries: 3, retries: 3,
burst_pct: Self::PRECONFIG_BURST_BURST_PCT, burst_pct: Self::PRECONFIG_BURST_BURST_PCT,
duration_overhead: Duration::from_millis(Self::PRECONFIG_BURST_DURATION_OVERHEAD_MILLIS), duration_overhead: Duration::from_millis(Self::PRECONFIG_BURST_DURATION_OVERHEAD_MILLIS),
reqwest_client: ClientBuilder::new(), client_builder: Some(ClientBuilder::new()),
} }
} }
@ -147,4 +147,13 @@ impl RiotApiConfig {
self.duration_overhead = duration_overhead; self.duration_overhead = duration_overhead;
self self
} }
/// Sets the reqwest `ClientBuilder`.
///
/// # Returns
/// `self`, for chaining.
pub fn set_client_builder(mut self, client_builder: ClientBuilder) -> Self {
self.client_builder = Some(client_builder);
self
}
} }

View file

@ -31,11 +31,12 @@ pub struct RiotApi {
} }
impl RiotApi { impl RiotApi {
pub fn with_config(config: RiotApiConfig) -> Self { pub fn with_config(mut config: RiotApiConfig) -> Self {
log::trace!("Creating client (TODO: configuration)."); let client_builder = config.client_builder.take()
.expect("!NONE CLIENT_BUILDER IN CONFIG.");
Self { Self {
config: config, config: config,
client: Client::new(), client: client_builder.build().expect("Failed to create client from builder."),
regional_requesters: InsertOnlyCHashMap::new(), regional_requesters: InsertOnlyCHashMap::new(),
} }
} }

View file

@ -59,7 +59,6 @@ async_tests!{
// match_get_old: async { // match_get_old: async {
// let p = RIOT_API.match_v4().get_match(Region::NA, 2632789562); // let p = RIOT_API.match_v4().get_match(Region::NA, 2632789562);
// let m = p.await.map_err(|e| e.to_string())?.ok_or("Failed to get match.".to_owned())?; // let m = p.await.map_err(|e| e.to_string())?.ok_or("Failed to get match.".to_owned())?;
// // TODO.
// Ok(()) // Ok(())
// }, // },
match_get_aram: async { match_get_aram: async {