1use crate::config::AnzarConfiguration;
2use crate::infrastructure::database::DatabaseAdapters;
3
4use crate::domain::repositories::SigningKeysRepository;
5use crate::utils::crypto::Crypto;
6
7#[derive(Clone)]
8pub struct KeyService {
9 pub(crate) signing_key_repository: SigningKeysRepository,
10 pub(crate) crypto: Crypto,
11 pub(crate) configuration: AnzarConfiguration,
12}
13
14impl KeyService {
15 pub fn new(
16 database_adapters: &DatabaseAdapters,
17 crypto: &Crypto,
18 configuration: &AnzarConfiguration,
19 ) -> Self {
20 Self {
21 signing_key_repository: SigningKeysRepository::new(
22 database_adapters.signing_keys_adapter.clone(),
23 ),
24 crypto: crypto.clone(),
25 configuration: configuration.clone(),
26 }
27 }
28}