Skip to content

Commit 1ee9dff

Browse files
committed
Externalize registration event sending to use it in test
1 parent 24da918 commit 1ee9dff

File tree

3 files changed

+40
-27
lines changed

3 files changed

+40
-27
lines changed

mithril-aggregator/src/event_store/database/repository.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ mod tests {
153153
use crate::event_store::{
154154
database::test_helper::event_store_db_connection, TransmitterService,
155155
};
156+
use crate::http_server::routes::signer_routes;
156157
use crate::test_tools::TestLogger;
157158
use mithril_common::entities::Stake;
158159
use mithril_common::{entities::SignerWithStake, test_utils::fake_data, StdResult};
@@ -168,11 +169,6 @@ mod tests {
168169
stake: Stake,
169170
signer_node_version: &str,
170171
) {
171-
let headers = vec![
172-
("signer-node-version", signer_node_version),
173-
("epoch", epoch),
174-
];
175-
176172
let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::<EventMessage>();
177173
let transmitter_service = Arc::new(TransmitterService::new(tx, TestLogger::stdout()));
178174

@@ -183,11 +179,11 @@ mod tests {
183179
..signers[0].clone()
184180
};
185181

186-
let _result = transmitter_service.send_event_message::<SignerWithStake>(
187-
"HTTP::signer_register",
188-
"register_signer",
182+
let _ = signer_routes::handlers::send_registration_event(
183+
&transmitter_service,
189184
&signer,
190-
headers,
185+
Some(signer_node_version.to_string()),
186+
epoch,
191187
);
192188

193189
let message: EventMessage = rx.try_recv().unwrap();

mithril-aggregator/src/http_server/routes/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ pub(crate) mod reply;
77
mod root_routes;
88
pub mod router;
99
mod signatures_routes;
10-
mod signer_routes;
10+
pub(crate) mod signer_routes;
1111
mod statistics_routes;
1212

1313
/// Match the given result and do an early return with an internal server error (500)

mithril-aggregator/src/http_server/routes/signer_routes.rs

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ async fn compute_registration_epoch(
9090
}
9191
}
9292

93-
mod handlers {
93+
pub(crate) mod handlers {
9494
use crate::database::repository::SignerGetter;
9595
use crate::dependency_injection::EpochServiceWrapper;
9696
use crate::entities::{
@@ -102,12 +102,36 @@ mod handlers {
102102
};
103103
use crate::{http_server::routes::reply, SignerRegisterer, SignerRegistrationError};
104104
use crate::{FromRegisterSignerAdapter, MetricsService, VerificationKeyStorer};
105+
use mithril_common::entities::SignerWithStake;
105106
use mithril_common::messages::{RegisterSignerMessage, TryFromMessageAdapter};
106107
use slog::{debug, warn, Logger};
107108
use std::convert::Infallible;
108109
use std::sync::Arc;
109110
use warp::http::StatusCode;
110111

112+
pub(crate) fn send_registration_event(
113+
transmitter: &TransmitterService<EventMessage>,
114+
signer_with_stake: &SignerWithStake,
115+
signer_node_version: Option<String>,
116+
epoch_str: &str,
117+
) -> Result<(), String> {
118+
let mut headers: Vec<(&str, &str)> = match signer_node_version.as_ref() {
119+
Some(version) => vec![("signer-node-version", version)],
120+
None => Vec::new(),
121+
};
122+
123+
if !epoch_str.is_empty() {
124+
headers.push(("epoch", epoch_str));
125+
}
126+
127+
transmitter.send_event_message::<SignerWithStake>(
128+
"HTTP::signer_register",
129+
"register_signer",
130+
&signer_with_stake,
131+
headers,
132+
)
133+
}
134+
111135
/// Register Signer
112136
pub async fn register_signer(
113137
signer_node_version: Option<String>,
@@ -137,37 +161,30 @@ mod handlers {
137161
}
138162
};
139163

140-
let mut headers: Vec<(&str, &str)> = match signer_node_version.as_ref() {
141-
Some(version) => vec![("signer-node-version", version)],
142-
None => Vec::new(),
143-
};
144-
145164
let epoch_str = fetch_epoch_header_value(epoch_service, &logger).await;
146-
if !epoch_str.is_empty() {
147-
headers.push(("epoch", epoch_str.as_str()));
148-
}
149165

150166
match signer_registerer
151167
.register_signer(registration_epoch, &signer)
152168
.await
153169
{
154170
Ok(signer_with_stake) => {
155-
let _ = event_transmitter.send_event_message(
156-
"HTTP::signer_register",
157-
"register_signer",
171+
let _ = send_registration_event(
172+
&event_transmitter,
158173
&signer_with_stake,
159-
headers,
174+
signer_node_version,
175+
epoch_str.as_str(),
160176
);
161177

162178
Ok(reply::empty(StatusCode::CREATED))
163179
}
164180
Err(SignerRegistrationError::ExistingSigner(signer_with_stake)) => {
165181
debug!(logger, "register_signer::already_registered");
166-
let _ = event_transmitter.send_event_message(
167-
"HTTP::signer_register",
168-
"register_signer",
182+
183+
let _ = send_registration_event(
184+
&event_transmitter,
169185
&signer_with_stake,
170-
headers,
186+
signer_node_version,
187+
epoch_str.as_str(),
171188
);
172189
Ok(reply::empty(StatusCode::CREATED))
173190
}

0 commit comments

Comments
 (0)