feat: implement album sharing functionality with permissions management
This commit is contained in:
@@ -5,7 +5,8 @@ use libertas_core::{
|
||||
error::{CoreError, CoreResult},
|
||||
};
|
||||
use libertas_infra::factory::{
|
||||
build_album_repository, build_database_pool, build_media_repository, build_user_repository,
|
||||
build_album_repository, build_album_share_repository, build_database_pool,
|
||||
build_media_repository, build_user_repository,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
@@ -28,6 +29,7 @@ pub async fn build_app_state(config: Config) -> CoreResult<AppState> {
|
||||
let user_repo = build_user_repository(&config.database, db_pool.clone()).await?;
|
||||
let media_repo = build_media_repository(&config.database, db_pool.clone()).await?;
|
||||
let album_repo = build_album_repository(&config.database, db_pool.clone()).await?;
|
||||
let album_share_repo = build_album_share_repository(&config.database, db_pool.clone()).await?;
|
||||
|
||||
let hasher = Arc::new(Argon2Hasher::default());
|
||||
let tokenizer = Arc::new(JwtGenerator::new(config.jwt_secret.clone()));
|
||||
@@ -40,10 +42,15 @@ pub async fn build_app_state(config: Config) -> CoreResult<AppState> {
|
||||
let media_service = Arc::new(MediaServiceImpl::new(
|
||||
media_repo.clone(),
|
||||
user_repo.clone(),
|
||||
album_share_repo.clone(),
|
||||
config.clone(),
|
||||
nats_client.clone(),
|
||||
));
|
||||
let album_service = Arc::new(AlbumServiceImpl::new(album_repo, media_repo));
|
||||
let album_service = Arc::new(AlbumServiceImpl::new(
|
||||
album_repo,
|
||||
media_repo,
|
||||
album_share_repo,
|
||||
));
|
||||
|
||||
Ok(AppState {
|
||||
user_service,
|
||||
|
||||
Reference in New Issue
Block a user