Skip to main content

shared/intern/
session.rs

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}