Skip to content

Commit bfc1b82

Browse files
committed
refactor(aggregator-client): move query related types to query module
and move certificate_details query to `query::certificate::get_certificate_details`
1 parent a402fdb commit bfc1b82

File tree

5 files changed

+53
-43
lines changed

5 files changed

+53
-43
lines changed

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

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,11 @@
11
use anyhow::{Context, anyhow};
2-
use reqwest::{Response, Url};
2+
use reqwest::Url;
33

4-
use serde::de::DeserializeOwned;
54
use slog::Logger;
65

76
use crate::AggregatorClientResult;
87
use crate::error::AggregatorClientError;
9-
10-
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
11-
pub(crate) enum QueryMethod {
12-
Get,
13-
Post,
14-
}
15-
16-
// Todo: wasm compatibility
17-
#[async_trait::async_trait]
18-
pub(crate) trait AggregatorQuery {
19-
type Response: DeserializeOwned;
20-
type Body: serde::Serialize + Sized;
21-
22-
fn method() -> QueryMethod;
23-
24-
fn route(&self) -> String;
25-
26-
fn body(&self) -> Option<Self::Body> {
27-
None
28-
}
29-
30-
async fn handle_response(
31-
&self,
32-
context: QueryContext,
33-
) -> AggregatorClientResult<Self::Response>;
34-
}
35-
36-
// internal to the crate
37-
pub(crate) struct QueryContext {
38-
pub(crate) response: Response,
39-
pub(crate) logger: Logger,
40-
}
41-
42-
impl QueryContext {
43-
pub(crate) async fn unhandled_status_code(self) -> AggregatorClientError {
44-
AggregatorClientError::from_response(self.response).await
45-
}
46-
}
8+
use crate::query::{AggregatorQuery, QueryContext, QueryMethod};
479

4810
pub struct AggregatorClient {
4911
aggregator_endpoint: Url,
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
use reqwest::Response;
2+
use serde::de::DeserializeOwned;
3+
use slog::Logger;
4+
5+
use crate::AggregatorClientResult;
6+
use crate::error::AggregatorClientError;
7+
8+
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
9+
pub enum QueryMethod {
10+
Get,
11+
Post,
12+
}
13+
14+
// Todo: wasm compatibility
15+
#[async_trait::async_trait]
16+
pub trait AggregatorQuery {
17+
type Response: DeserializeOwned;
18+
type Body: serde::Serialize + Sized;
19+
20+
fn method() -> QueryMethod;
21+
22+
fn route(&self) -> String;
23+
24+
fn body(&self) -> Option<Self::Body> {
25+
None
26+
}
27+
28+
async fn handle_response(
29+
&self,
30+
context: QueryContext,
31+
) -> AggregatorClientResult<Self::Response>;
32+
}
33+
34+
pub struct QueryContext {
35+
pub(crate) response: Response,
36+
pub(crate) logger: Logger,
37+
}
38+
39+
impl QueryContext {
40+
pub async fn unhandled_status_code(self) -> AggregatorClientError {
41+
AggregatorClientError::from_response(self.response).await
42+
}
43+
}

internal/mithril-aggregator-client/src/query/certificate_details.rs renamed to internal/mithril-aggregator-client/src/query/certificate/get_certificate_details.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ use slog::debug;
55
use mithril_common::messages::CertificateMessage;
66

77
use crate::AggregatorClientResult;
8-
use crate::client::{AggregatorQuery, QueryContext, QueryMethod};
98
use crate::error::AggregatorClientError;
9+
use crate::query::{AggregatorQuery, QueryContext, QueryMethod};
1010

1111
pub struct CertificateDetailsQuery {
1212
hash: String,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
mod get_certificate_details;
2+
3+
pub use get_certificate_details::*;
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1-
mod certificate_details;
1+
mod api;
2+
mod certificate;
23

3-
pub use certificate_details::*;
4+
pub(crate) use api::*;
5+
pub use certificate::*;

0 commit comments

Comments
 (0)