Skip to content

Commit f494875

Browse files
committed
feat(aggregator-client): add warning when client and aggregator api versions mismatch
the test suite is copied and adapted from `mithril-client`
1 parent d567e99 commit f494875

File tree

2 files changed

+325
-74
lines changed

2 files changed

+325
-74
lines changed

internal/mithril-aggregator-client/src/builder.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,14 @@ use reqwest::{IntoUrl, Url};
33
use slog::{Logger, o};
44

55
use mithril_common::StdResult;
6+
use mithril_common::api_version::APIVersionProvider;
67

78
use crate::client::AggregatorClient;
89

910
/// A builder of [AggregatorClient]
1011
pub struct AggregatorClientBuilder {
1112
aggregator_url_result: reqwest::Result<Url>,
13+
api_version_provider: Option<APIVersionProvider>,
1214
logger: Option<Logger>,
1315
}
1416

@@ -19,6 +21,7 @@ impl AggregatorClientBuilder {
1921
pub fn new<U: IntoUrl>(aggregator_url: U) -> Self {
2022
Self {
2123
aggregator_url_result: aggregator_url.into_url(),
24+
api_version_provider: None,
2225
logger: None,
2326
}
2427
}
@@ -29,16 +32,24 @@ impl AggregatorClientBuilder {
2932
self
3033
}
3134

35+
/// Set the [APIVersionProvider] to use.
36+
pub fn with_api_version_provider(mut self, api_version_provider: APIVersionProvider) -> Self {
37+
self.api_version_provider = Some(api_version_provider);
38+
self
39+
}
40+
3241
/// Returns an [AggregatorClient] based on the builder configuration
3342
pub fn build(self) -> StdResult<AggregatorClient> {
3443
let aggregator_endpoint =
3544
enforce_trailing_slash(self.aggregator_url_result.with_context(
3645
|| "Invalid aggregator endpoint, it must be a correctly formed url",
3746
)?);
3847
let logger = self.logger.unwrap_or_else(|| Logger::root(slog::Discard, o!()));
48+
let api_version_provider = self.api_version_provider.unwrap_or_default();
3949

4050
Ok(AggregatorClient {
4151
aggregator_endpoint,
52+
api_version_provider,
4253
client: reqwest::Client::new(),
4354
logger,
4455
})

0 commit comments

Comments
 (0)