use std::sync::Arc;
use crate::platform::error::PlatformError;
use crate::platform::model::AuthSession;
use crate::platform::services::user::UserService;
pub struct AuthService {
users: Arc<UserService>,
}
impl AuthService {
pub fn new(users: Arc<UserService>) -> Self {
Self { users }
}
pub fn login(&self, owner: &str, password: &str) -> Result<Option<AuthSession>, PlatformError> {
if self.users.authenticate(owner, password)? {
Ok(Some(AuthSession {
owner: owner.to_ascii_lowercase(),
}))
} else {
Ok(None)
}
}
}