1
1
use std:: sync:: Arc ;
2
2
use std:: time:: Duration ;
3
3
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 ;
8
5
use torrust_tracker_primitives:: DurationSinceUnixEpoch ;
9
6
10
7
use super :: databases:: { self } ;
@@ -21,22 +18,18 @@ pub type Error = key::Error;
21
18
22
19
pub struct Facade {
23
20
/// The authentication service.
24
- authentication_service : service:: Service ,
21
+ authentication_service : Arc < service:: Service > ,
25
22
26
23
/// The keys handler.
27
- keys_handler : handler:: KeysHandler ,
24
+ keys_handler : Arc < handler:: KeysHandler > ,
28
25
}
29
26
30
27
impl Facade {
31
28
#[ 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 {
37
30
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 ( ) ,
40
33
}
41
34
}
42
35
@@ -153,9 +146,10 @@ mod tests {
153
146
use torrust_tracker_configuration:: Configuration ;
154
147
use torrust_tracker_test_helpers:: configuration;
155
148
156
- use crate :: core:: authentication;
149
+ use crate :: core:: authentication:: handler :: KeysHandler ;
157
150
use crate :: core:: authentication:: key:: repository:: in_memory:: InMemoryKeyRepository ;
158
151
use crate :: core:: authentication:: key:: repository:: persisted:: DatabaseKeyRepository ;
152
+ use crate :: core:: authentication:: { self , service} ;
159
153
use crate :: core:: services:: initialize_database;
160
154
161
155
fn instantiate_authentication_facade ( ) -> authentication:: Facade {
@@ -180,7 +174,13 @@ mod tests {
180
174
let db_key_repository = Arc :: new ( DatabaseKeyRepository :: new ( & database) ) ;
181
175
let in_memory_key_repository = Arc :: new ( InMemoryKeyRepository :: default ( ) ) ;
182
176
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)
184
184
}
185
185
186
186
#[ tokio:: test]
0 commit comments