Skip to content

Commit 965e911

Browse files
committed
refactor: [#1195] inject dependencies into authenticattion::Facade
The Facade will be replaced by its dependencies.
1 parent 504357c commit 965e911

File tree

8 files changed

+53
-31
lines changed

8 files changed

+53
-31
lines changed

src/app_test.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@ use std::sync::Arc;
33

44
use torrust_tracker_configuration::Configuration;
55

6+
use crate::core::authentication::handler::KeysHandler;
67
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
78
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
9+
use crate::core::authentication::service;
810
use crate::core::databases::Database;
911
use crate::core::services::initialize_database;
1012
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
@@ -29,11 +31,12 @@ pub fn initialize_tracker_dependencies(
2931
));
3032
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
3133
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
32-
let authentication = Arc::new(authentication::Facade::new(
33-
&config.core,
34+
let authentication_service = Arc::new(service::Service::new(&config.core, &in_memory_key_repository));
35+
let keys_handler = Arc::new(KeysHandler::new(
3436
&db_key_repository.clone(),
3537
&in_memory_key_repository.clone(),
3638
));
39+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
3740

3841
(database, in_memory_whitelist, whitelist_authorization, authentication)
3942
}

src/bootstrap/app.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ use tracing::instrument;
2222
use super::config::initialize_configuration;
2323
use crate::bootstrap;
2424
use crate::container::AppContainer;
25+
use crate::core::authentication::handler::KeysHandler;
2526
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
2627
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
28+
use crate::core::authentication::service;
2729
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
2830
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
2931
use crate::core::{authentication, whitelist};
@@ -93,11 +95,12 @@ pub fn initialize_app_container(configuration: &Configuration) -> AppContainer {
9395
let whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
9496
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
9597
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
96-
let authentication = Arc::new(authentication::Facade::new(
97-
&configuration.core,
98+
let authentication_service = Arc::new(service::Service::new(&configuration.core, &in_memory_key_repository));
99+
let keys_handler = Arc::new(KeysHandler::new(
98100
&db_key_repository.clone(),
99101
&in_memory_key_repository.clone(),
100102
));
103+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
101104

102105
let tracker = Arc::new(initialize_tracker(
103106
configuration,

src/bootstrap/jobs/http_tracker.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,10 @@ 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::handler::KeysHandler;
103104
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
104105
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
106+
use crate::core::authentication::service;
105107
use crate::core::services::{initialize_database, initialize_tracker, statistics};
106108
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
107109
use crate::core::{authentication, whitelist};
@@ -127,11 +129,12 @@ mod tests {
127129
));
128130
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
129131
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
130-
let authentication = Arc::new(authentication::Facade::new(
131-
&cfg.core,
132+
let authentication_service = Arc::new(service::Service::new(&cfg.core, &in_memory_key_repository));
133+
let keys_handler = Arc::new(KeysHandler::new(
132134
&db_key_repository.clone(),
133135
&in_memory_key_repository.clone(),
134136
));
137+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
135138

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

src/bootstrap/jobs/tracker_apis.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,10 @@ 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::handler::KeysHandler;
152153
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
153154
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
155+
use crate::core::authentication::service;
154156
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
155157
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
156158
use crate::core::{authentication, whitelist};
@@ -180,11 +182,12 @@ mod tests {
180182
let whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
181183
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
182184
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
183-
let authentication = Arc::new(authentication::Facade::new(
184-
&cfg.core,
185+
let authentication_service = Arc::new(service::Service::new(&cfg.core, &in_memory_key_repository));
186+
let keys_handler = Arc::new(KeysHandler::new(
185187
&db_key_repository.clone(),
186188
&in_memory_key_repository.clone(),
187189
));
190+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
188191

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

src/core/authentication/mod.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
use std::sync::Arc;
22
use std::time::Duration;
33

4-
use handler::{AddKeyRequest, KeysHandler};
5-
use key::repository::in_memory::InMemoryKeyRepository;
6-
use key::repository::persisted::DatabaseKeyRepository;
7-
use torrust_tracker_configuration::Core;
4+
use handler::AddKeyRequest;
85
use torrust_tracker_primitives::DurationSinceUnixEpoch;
96

107
use super::databases::{self};
@@ -21,22 +18,18 @@ pub type Error = key::Error;
2118

2219
pub struct Facade {
2320
/// The authentication service.
24-
authentication_service: service::Service,
21+
authentication_service: Arc<service::Service>,
2522

2623
/// The keys handler.
27-
keys_handler: handler::KeysHandler,
24+
keys_handler: Arc<handler::KeysHandler>,
2825
}
2926

3027
impl Facade {
3128
#[must_use]
32-
pub fn new(
33-
config: &Core,
34-
db_key_repository: &Arc<DatabaseKeyRepository>,
35-
in_memory_key_repository: &Arc<InMemoryKeyRepository>,
36-
) -> Self {
29+
pub fn new(authentication_service: &Arc<service::Service>, keys_handler: &Arc<handler::KeysHandler>) -> Self {
3730
Self {
38-
authentication_service: service::Service::new(config, in_memory_key_repository),
39-
keys_handler: KeysHandler::new(&db_key_repository.clone(), &in_memory_key_repository.clone()),
31+
authentication_service: authentication_service.clone(),
32+
keys_handler: keys_handler.clone(),
4033
}
4134
}
4235

@@ -153,9 +146,10 @@ mod tests {
153146
use torrust_tracker_configuration::Configuration;
154147
use torrust_tracker_test_helpers::configuration;
155148

156-
use crate::core::authentication;
149+
use crate::core::authentication::handler::KeysHandler;
157150
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
158151
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
152+
use crate::core::authentication::{self, service};
159153
use crate::core::services::initialize_database;
160154

161155
fn instantiate_authentication_facade() -> authentication::Facade {
@@ -180,7 +174,13 @@ mod tests {
180174
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
181175
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
182176

183-
authentication::Facade::new(&config.core, &db_key_repository.clone(), &in_memory_key_repository.clone())
177+
let authentication_service = Arc::new(service::Service::new(&config.core, &in_memory_key_repository));
178+
let keys_handler = Arc::new(KeysHandler::new(
179+
&db_key_repository.clone(),
180+
&in_memory_key_repository.clone(),
181+
));
182+
183+
authentication::Facade::new(&authentication_service, &keys_handler)
184184
}
185185

186186
#[tokio::test]

src/servers/apis/server.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -342,8 +342,10 @@ mod tests {
342342

343343
use crate::bootstrap::app::initialize_global_services;
344344
use crate::bootstrap::jobs::make_rust_tls;
345+
use crate::core::authentication::handler::KeysHandler;
345346
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
346347
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
348+
use crate::core::authentication::service;
347349
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
348350
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
349351
use crate::core::{authentication, whitelist};
@@ -373,11 +375,12 @@ mod tests {
373375
let whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
374376
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
375377
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
376-
let authentication = Arc::new(authentication::Facade::new(
377-
&cfg.core,
378+
let authentication_service = Arc::new(service::Service::new(&cfg.core, &in_memory_key_repository));
379+
let keys_handler = Arc::new(KeysHandler::new(
378380
&db_key_repository.clone(),
379381
&in_memory_key_repository.clone(),
380382
));
383+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
381384

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

src/servers/http/server.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -246,8 +246,10 @@ mod tests {
246246

247247
use crate::bootstrap::app::initialize_global_services;
248248
use crate::bootstrap::jobs::make_rust_tls;
249+
use crate::core::authentication::handler::KeysHandler;
249250
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
250251
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
252+
use crate::core::authentication::service;
251253
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
252254
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
253255
use crate::core::{authentication, whitelist};
@@ -272,11 +274,12 @@ mod tests {
272274
let _whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
273275
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
274276
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
275-
let authentication = Arc::new(authentication::Facade::new(
276-
&cfg.core,
277+
let authentication_service = Arc::new(service::Service::new(&cfg.core, &in_memory_key_repository));
278+
let keys_handler = Arc::new(KeysHandler::new(
277279
&db_key_repository.clone(),
278280
&in_memory_key_repository.clone(),
279281
));
282+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
280283

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

src/servers/udp/server/mod.rs

+8-4
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,10 @@ mod tests {
6464
use super::spawner::Spawner;
6565
use super::Server;
6666
use crate::bootstrap::app::initialize_global_services;
67+
use crate::core::authentication::handler::KeysHandler;
6768
use crate::core::authentication::key::repository::in_memory::InMemoryKeyRepository;
6869
use crate::core::authentication::key::repository::persisted::DatabaseKeyRepository;
70+
use crate::core::authentication::service;
6971
use crate::core::services::{initialize_database, initialize_tracker, initialize_whitelist_manager, statistics};
7072
use crate::core::whitelist::repository::in_memory::InMemoryWhitelist;
7173
use crate::core::{authentication, whitelist};
@@ -92,11 +94,12 @@ mod tests {
9294
let _whitelist_manager = initialize_whitelist_manager(database.clone(), in_memory_whitelist.clone());
9395
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
9496
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
95-
let authentication = Arc::new(authentication::Facade::new(
96-
&cfg.core,
97+
let authentication_service = Arc::new(service::Service::new(&cfg.core, &in_memory_key_repository));
98+
let keys_handler = Arc::new(KeysHandler::new(
9799
&db_key_repository.clone(),
98100
&in_memory_key_repository.clone(),
99101
));
102+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
100103

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

@@ -144,11 +147,12 @@ mod tests {
144147
));
145148
let db_key_repository = Arc::new(DatabaseKeyRepository::new(&database));
146149
let in_memory_key_repository = Arc::new(InMemoryKeyRepository::default());
147-
let authentication = Arc::new(authentication::Facade::new(
148-
&cfg.core,
150+
let authentication_service = Arc::new(service::Service::new(&cfg.core, &in_memory_key_repository));
151+
let keys_handler = Arc::new(KeysHandler::new(
149152
&db_key_repository.clone(),
150153
&in_memory_key_repository.clone(),
151154
));
155+
let authentication = Arc::new(authentication::Facade::new(&authentication_service, &keys_handler));
152156

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

0 commit comments

Comments
 (0)