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