init
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
use crate::domain::events::server::ServerCreatedEvent;
|
||||
use crate::repositories::Repositories;
|
||||
use event_bus::EventBus;
|
||||
use std::sync::Arc;
|
||||
|
||||
use uuid::Uuid;
|
||||
// list of all events :
|
||||
// server_user_created
|
||||
// server_user_deleted
|
||||
@@ -42,5 +43,21 @@ impl PermissionSyncService {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn listen(&self) {}
|
||||
pub async fn start_listen_event(&self) {
|
||||
// todo : compléter la liste de permission avec le déclenchement des évènements
|
||||
self.event_bus.on_async_with(
|
||||
"server_created",
|
||||
self.repositories.clone(),
|
||||
move |repositories, payload: ServerCreatedEvent| {
|
||||
Self::sync_server_permissions(repositories, payload.server.id)
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
async fn sync_server_permissions(repositories: Arc<Repositories>, server_id: Uuid) {
|
||||
let _ = repositories
|
||||
.computed_permission
|
||||
.full_sync_server(server_id)
|
||||
.await;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user