Skip to content

Commit 504357c

Browse files
committed
refactor: [#1195] inject dependencies in authenticatio::Facade
Facade service will be removed.
1 parent 663250b commit 504357c

File tree

8 files changed

+94
-20
lines changed

8 files changed

+94
-20
lines changed

src/app_test.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ use std::sync::Arc;
33

44
use torrust_tracker_configuration::Configuration;
55

6+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
7+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
68
use crate::core::databases::Database;
79
use crate::core::services::initialize_database;
810
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
@@ -25,7 +27,13 @@ pub fn initialize_tracker_dependencies(
2527
&config.core,
2628
&in_memory_whitelist.clone(),
2729
));
28-
let authentication = Arc::new(authentication::Facade::new(&config.core, &database.clone()));
30+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
31+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
32+
let authentication = Arc::new(authentication::Facade::new(
33+
&config.core,
34+
&db_key_repository.clone(),
35+
&in_memory_key_repository.clone(),
36+
));
2937

3038
(database, in_memory_whitelist, whitelist_authorization, authentication)
3139
}

src/bootstrap/app.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ use tracing::instrument;
2222
use super::config::initialize_configuration;
2323
use crate::bootstrap;
2424
use crate::container::AppContainer;
25+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
26+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
2527
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
2628
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
2729
use crate::core::{authentication, whitelist};
@@ -89,7 +91,13 @@ pub fn initialize_app_container(configuration: &Configuration) -> AppContainer {
8991
&in_memory_whitelist.clone(),
9092
));
9193
let whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
92-
let authentication = Arc::new(authentication::Facade::new(&configuration.core, &database.clone()));
94+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
95+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
96+
let authentication = Arc::new(authentication::Facade::new(
97+
&configuration.core,
98+
&db_key_repository.clone(),
99+
&in_memory_key_repository.clone(),
100+
));
93101

94102
let tracker = Arc::new(initialize_tracker(
95103
configuration,

src/bootstrap/jobs/http_tracker.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,8 @@ mod tests {
100100

101101
use crate::bootstrap::app::initialize_global_services;
102102
use crate::bootstrap::jobs::http_tracker::start_job;
103+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
104+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
103105
use crate::core::services::{initialize_database, initialize_tracker, statistics};
104106
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
105107
use crate::core::{authentication, whitelist};
@@ -123,7 +125,13 @@ mod tests {
123125
&cfg.core,
124126
&in_memory_whitelist.clone(),
125127
));
126-
let authentication = Arc::new(authentication::Facade::new(&cfg.core, &database.clone()));
128+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
129+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
130+
let authentication = Arc::new(authentication::Facade::new(
131+
&cfg.core,
132+
&db_key_repository.clone(),
133+
&in_memory_key_repository.clone(),
134+
));
127135

128136
let tracker = Arc::new(initialize_tracker(&cfg, &database, &whitelist_authorization, &authentication));
129137

src/bootstrap/jobs/tracker_apis.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,8 @@ mod tests {
149149

150150
use crate::bootstrap::app::initialize_global_services;
151151
use crate::bootstrap::jobs::tracker_apis::start_job;
152+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
153+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
152154
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
153155
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
154156
use crate::core::{authentication, whitelist};
@@ -176,7 +178,13 @@ mod tests {
176178
&in_memory_whitelist.clone(),
177179
));
178180
let whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
179-
let authentication = Arc::new(authentication::Facade::new(&cfg.core, &database.clone()));
181+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
182+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
183+
let authentication = Arc::new(authentication::Facade::new(
184+
&cfg.core,
185+
&db_key_repository.clone(),
186+
&in_memory_key_repository.clone(),
187+
));
180188

181189
let tracker = Arc::new(initialize_tracker(&cfg, &database, &whitelist_authorization, &authentication));
182190

src/core/authentication/mod.rs

+22-12
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use key::repository::persisted::DatabaseKeyRepository;
77
use torrust_tracker_configuration::Core;
88
use torrust_tracker_primitives::DurationSinceUnixEpoch;
99

10-
use super::databases::{self, Database};
10+
use super::databases::{self};
1111
use super::error::PeerKeyError;
1212
use crate::CurrentClock;
1313

@@ -29,12 +29,13 @@ pub struct Facade {
2929

3030
impl Facade {
3131
#[must_use]
32-
pub fn new(config: &Core, database: &Arc<Box<dyn Database>>) -> Self {
33-
let db_key_repository = Arc::new(DatabaseKeyRepository::new(database));
34-
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
35-
32+
pub fn new(
33+
config: &Core,
34+
db_key_repository: &Arc<DatabaseKeyRepository>,
35+
in_memory_key_repository: &Arc<InMemoryKeyRepository>,
36+
) -> Self {
3637
Self {
37-
authentication_service: service::Service::new(config, &in_memory_key_repository),
38+
authentication_service: service::Service::new(config, in_memory_key_repository),
3839
keys_handler: KeysHandler::new(&db_key_repository.clone(), &in_memory_key_repository.clone()),
3940
}
4041
}
@@ -145,20 +146,22 @@ mod tests {
145146

146147
mod the_tracker_configured_as_private {
147148

149+
use std::sync::Arc;
148150
use std::time::Duration;
149151

150152
use torrust_tracker_configuration::v2_0_0::core::PrivateMode;
153+
use torrust_tracker_configuration::Configuration;
151154
use torrust_tracker_test_helpers::configuration;
152155

153156
use crate::core::authentication;
157+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
158+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
154159
use crate::core::services::initialize_database;
155160

156161
fn instantiate_authentication_facade() -> authentication::Facade {
157162
let config = configuration::ephemeral_private();
158163

159-
let database = initialize_database(&config);
160-
161-
authentication::Facade::new(&config.core, &database.clone())
164+
instantiate_authentication_facade_with_configuration(&config)
162165
}
163166

164167
fn instantiate_authentication_facade_with_checking_keys_expiration_disabled() -> authentication::Facade {
@@ -168,9 +171,16 @@ mod tests {
168171
check_keys_expiration: false,
169172
});
170173

171-
let database = initialize_database(&config);
172-
173-
authentication::Facade::new(&config.core, &database.clone())
174+
instantiate_authentication_facade_with_configuration(&config)
175+
}
176+
177+
fn instantiate_authentication_facade_with_configuration(config: &Configuration) -> authentication::Facade {
178+
let database = initialize_database(config);
179+
180+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
181+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
182+
183+
authentication::Facade::new(&config.core, &db_key_repository.clone(), &in_memory_key_repository.clone())
174184
}
175185

176186
#[tokio::test]

src/servers/apis/server.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,8 @@ mod tests {
342342

343343
use crate::bootstrap::app::initialize_global_services;
344344
use crate::bootstrap::jobs::make_rust_tls;
345+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
346+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
345347
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
346348
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
347349
use crate::core::{authentication, whitelist};
@@ -369,7 +371,13 @@ mod tests {
369371
&in_memory_whitelist.clone(),
370372
));
371373
let whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
372-
let authentication = Arc::new(authentication::Facade::new(&cfg.core, &database.clone()));
374+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
375+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
376+
let authentication = Arc::new(authentication::Facade::new(
377+
&cfg.core,
378+
&db_key_repository.clone(),
379+
&in_memory_key_repository.clone(),
380+
));
373381

374382
let tracker = Arc::new(initialize_tracker(&cfg, &database, &whitelist_authorization, &authentication));
375383

src/servers/http/server.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -246,6 +246,8 @@ mod tests {
246246

247247
use crate::bootstrap::app::initialize_global_services;
248248
use crate::bootstrap::jobs::make_rust_tls;
249+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
250+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
249251
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
250252
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
251253
use crate::core::{authentication, whitelist};
@@ -268,7 +270,13 @@ mod tests {
268270
&in_memory_whitelist.clone(),
269271
));
270272
let _whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
271-
let authentication = Arc::new(authentication::Facade::new(&cfg.core, &database.clone()));
273+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
274+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
275+
let authentication = Arc::new(authentication::Facade::new(
276+
&cfg.core,
277+
&db_key_repository.clone(),
278+
&in_memory_key_repository.clone(),
279+
));
272280

273281
let tracker = Arc::new(initialize_tracker(&cfg, &database, &whitelist_authorization, &authentication));
274282

src/servers/udp/server/mod.rs

+18-2
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ mod tests {
6464
use super::spawner::Spawner;
6565
use super::Server;
6666
use crate::bootstrap::app::initialize_global_services;
67+
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
68+
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
6769
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
6870
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
6971
use crate::core::{authentication, whitelist};
@@ -88,7 +90,14 @@ mod tests {
8890
&in_memory_whitelist.clone(),
8991
));
9092
let _whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
91-
let authentication = Arc::new(authentication::Facade::new(&cfg.core, &database.clone()));
93+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
94+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
95+
let authentication = Arc::new(authentication::Facade::new(
96+
&cfg.core,
97+
&db_key_repository.clone(),
98+
&in_memory_key_repository.clone(),
99+
));
100+
92101
let tracker = Arc::new(initialize_tracker(&cfg, &database, &whitelist_authorization, &authentication));
93102

94103
let udp_trackers = cfg.udp_trackers.clone().expect("missing UDP trackers configuration");
@@ -133,7 +142,14 @@ mod tests {
133142
&cfg.core,
134143
&in_memory_whitelist.clone(),
135144
));
136-
let authentication = Arc::new(authentication::Facade::new(&cfg.core, &database.clone()));
145+
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
146+
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
147+
let authentication = Arc::new(authentication::Facade::new(
148+
&cfg.core,
149+
&db_key_repository.clone(),
150+
&in_memory_key_repository.clone(),
151+
));
152+
137153
let tracker = Arc::new(initialize_tracker(&cfg, &database, &whitelist_authorization, &authentication));
138154

139155
let config = &cfg.udp_trackers.as_ref().unwrap().first().unwrap();

0 commit comments

Comments
 (0)