@@ -8,15 +8,15 @@ use std::time::Duration;
88use mithril_common:: MITHRIL_API_VERSION_HEADER ;
99use mithril_common:: api_version:: APIVersionProvider ;
1010
11- use crate :: AggregatorClientResult ;
11+ use crate :: AggregatorHttpClientResult ;
1212use crate :: builder:: AggregatorClientBuilder ;
13- use crate :: error:: AggregatorClientError ;
13+ use crate :: error:: AggregatorHttpClientError ;
1414use crate :: query:: { AggregatorQuery , QueryContext , QueryMethod } ;
1515
1616const API_VERSION_MISMATCH_WARNING_MESSAGE : & str = "OpenAPI version may be incompatible, please update Mithril client library to the latest version." ;
1717
1818/// A client to send HTTP requests to a Mithril Aggregator
19- pub struct AggregatorClient {
19+ pub struct AggregatorHttpClient {
2020 pub ( super ) aggregator_endpoint : Url ,
2121 pub ( super ) api_version_provider : Arc < APIVersionProvider > ,
2222 pub ( super ) additional_headers : HeaderMap ,
@@ -25,7 +25,7 @@ pub struct AggregatorClient {
2525 pub ( super ) logger : Logger ,
2626}
2727
28- impl AggregatorClient {
28+ impl AggregatorHttpClient {
2929 /// Creates a [AggregatorClientBuilder] to configure a `AggregatorClient`.
3030 //
3131 // This is the same as `AggregatorClient::builder()`.
@@ -34,7 +34,10 @@ impl AggregatorClient {
3434 }
3535
3636 /// Send the given query to the Mithril Aggregator
37- pub async fn send < Q : AggregatorQuery > ( & self , query : Q ) -> AggregatorClientResult < Q :: Response > {
37+ pub async fn send < Q : AggregatorQuery > (
38+ & self ,
39+ query : Q ,
40+ ) -> AggregatorHttpClientResult < Q :: Response > {
3841 // Todo: error handling ? Reuse the version in `warn_if_api_version_mismatch` ?
3942 let current_api_version = self . api_version_provider . compute_current_version ( ) . unwrap ( ) ;
4043 let mut request_builder = match Q :: method ( ) {
@@ -62,11 +65,13 @@ impl AggregatorClient {
6265 } ;
6366 query. handle_response ( context) . await
6467 }
65- Err ( err) => Err ( AggregatorClientError :: RemoteServerUnreachable ( anyhow ! ( err) ) ) ,
68+ Err ( err) => Err ( AggregatorHttpClientError :: RemoteServerUnreachable ( anyhow ! (
69+ err
70+ ) ) ) ,
6671 }
6772 }
6873
69- fn join_aggregator_endpoint ( & self , endpoint : & str ) -> AggregatorClientResult < Url > {
74+ fn join_aggregator_endpoint ( & self , endpoint : & str ) -> AggregatorHttpClientResult < Url > {
7075 self . aggregator_endpoint
7176 . join ( endpoint)
7277 . with_context ( || {
@@ -75,7 +80,7 @@ impl AggregatorClient {
7580 self . aggregator_endpoint
7681 )
7782 } )
78- . map_err ( AggregatorClientError :: InvalidEndpoint )
83+ . map_err ( AggregatorHttpClientError :: InvalidEndpoint )
7984 }
8085
8186 /// Check API version mismatch and log a warning if the aggregator's version is more recent.
@@ -141,13 +146,13 @@ mod tests {
141146 async fn handle_response (
142147 & self ,
143148 context : QueryContext ,
144- ) -> AggregatorClientResult < Self :: Response > {
149+ ) -> AggregatorHttpClientResult < Self :: Response > {
145150 match context. response . status ( ) {
146151 StatusCode :: OK => context
147152 . response
148153 . json :: < TestResponse > ( )
149154 . await
150- . map_err ( |err| AggregatorClientError :: JsonParseFailed ( anyhow ! ( err) ) ) ,
155+ . map_err ( |err| AggregatorHttpClientError :: JsonParseFailed ( anyhow ! ( err) ) ) ,
151156 _ => Err ( context. unhandled_status_code ( ) . await ) ,
152157 }
153158 }
@@ -192,7 +197,7 @@ mod tests {
192197 async fn handle_response (
193198 & self ,
194199 context : QueryContext ,
195- ) -> AggregatorClientResult < Self :: Response > {
200+ ) -> AggregatorHttpClientResult < Self :: Response > {
196201 match context. response . status ( ) {
197202 StatusCode :: CREATED => Ok ( ( ) ) ,
198203 _ => Err ( context. unhandled_status_code ( ) . await ) ,
@@ -293,7 +298,7 @@ mod tests {
293298 let error = client. send ( TestGetQuery ) . await . expect_err ( "should not fail" ) ;
294299
295300 assert ! (
296- matches!( error, AggregatorClientError :: RemoteServerUnreachable ( _) ) ,
301+ matches!( error, AggregatorHttpClientError :: RemoteServerUnreachable ( _) ) ,
297302 "unexpected error type: {error:?}"
298303 ) ;
299304 }
@@ -337,7 +342,7 @@ mod tests {
337342 let aggregator_version = "2.0.0" ;
338343 let client_version = "1.0.0" ;
339344 let ( logger, log_inspector) = TestLogger :: memory ( ) ;
340- let client = AggregatorClient :: builder ( "http://whatever" )
345+ let client = AggregatorHttpClient :: builder ( "http://whatever" )
341346 . with_logger ( logger)
342347 . with_api_version_provider ( Arc :: new ( APIVersionProvider :: new_with_default_version (
343348 Version :: parse ( client_version) . unwrap ( ) ,
@@ -361,7 +366,7 @@ mod tests {
361366 fn test_no_warning_logged_when_versions_match ( ) {
362367 let version = "1.0.0" ;
363368 let ( logger, log_inspector) = TestLogger :: memory ( ) ;
364- let client = AggregatorClient :: builder ( "http://whatever" )
369+ let client = AggregatorHttpClient :: builder ( "http://whatever" )
365370 . with_logger ( logger)
366371 . with_api_version_provider ( Arc :: new ( APIVersionProvider :: new_with_default_version (
367372 Version :: parse ( version) . unwrap ( ) ,
@@ -380,7 +385,7 @@ mod tests {
380385 let aggregator_version = "1.0.0" ;
381386 let client_version = "2.0.0" ;
382387 let ( logger, log_inspector) = TestLogger :: memory ( ) ;
383- let client = AggregatorClient :: builder ( "http://whatever" )
388+ let client = AggregatorHttpClient :: builder ( "http://whatever" )
384389 . with_logger ( logger)
385390 . with_api_version_provider ( Arc :: new ( APIVersionProvider :: new_with_default_version (
386391 Version :: parse ( client_version) . unwrap ( ) ,
@@ -403,7 +408,7 @@ mod tests {
403408 #[ test]
404409 fn test_does_not_log_or_fail_when_header_is_missing ( ) {
405410 let ( logger, log_inspector) = TestLogger :: memory ( ) ;
406- let client = AggregatorClient :: builder ( "http://whatever" )
411+ let client = AggregatorHttpClient :: builder ( "http://whatever" )
407412 . with_logger ( logger)
408413 . with_api_version_provider ( Arc :: new ( APIVersionProvider :: default ( ) ) )
409414 . build ( )
@@ -419,7 +424,7 @@ mod tests {
419424 #[ test]
420425 fn test_does_not_log_or_fail_when_header_is_not_a_version ( ) {
421426 let ( logger, log_inspector) = TestLogger :: memory ( ) ;
422- let client = AggregatorClient :: builder ( "http://whatever" )
427+ let client = AggregatorHttpClient :: builder ( "http://whatever" )
423428 . with_logger ( logger)
424429 . with_api_version_provider ( Arc :: new ( APIVersionProvider :: default ( ) ) )
425430 . build ( )
@@ -435,7 +440,7 @@ mod tests {
435440 #[ test]
436441 fn test_logs_error_when_client_version_cannot_be_computed ( ) {
437442 let ( logger, log_inspector) = TestLogger :: memory ( ) ;
438- let client = AggregatorClient :: builder ( "http://whatever" )
443+ let client = AggregatorHttpClient :: builder ( "http://whatever" )
439444 . with_logger ( logger)
440445 . with_api_version_provider ( Arc :: new ( APIVersionProvider :: new_failing ( ) ) )
441446 . build ( )
0 commit comments