- Added JWT authentication with token generation and validation. - Introduced user registration functionality with email and password. - Integrated Argon2 for password hashing. - Created SQLite user repository for user data persistence. - Updated application context to include user repository and configuration settings. - Added environment variable support for JWT secret and registration allowance. - Enhanced error handling for unauthorized access and validation errors. - Updated presentation layer to handle login and registration requests.
22 lines
677 B
Rust
22 lines
677 B
Rust
use std::sync::Arc;
|
|
|
|
use domain::ports::{
|
|
AuthService, EventPublisher, MetadataClient, MovieRepository, PasswordHasher,
|
|
PosterFetcherClient, PosterStorage, UserRepository,
|
|
};
|
|
|
|
use crate::config::AppConfig;
|
|
|
|
#[derive(Clone)]
|
|
pub struct AppContext {
|
|
pub repository: Arc<dyn MovieRepository>,
|
|
pub metadata_client: Arc<dyn MetadataClient>,
|
|
pub poster_fetcher: Arc<dyn PosterFetcherClient>,
|
|
pub poster_storage: Arc<dyn PosterStorage>,
|
|
pub event_publisher: Arc<dyn EventPublisher>,
|
|
pub auth_service: Arc<dyn AuthService>,
|
|
pub password_hasher: Arc<dyn PasswordHasher>,
|
|
pub user_repository: Arc<dyn UserRepository>,
|
|
pub config: AppConfig,
|
|
}
|