fix webrtc and login

This commit is contained in:
2026-09-24 13:55:59 +02:00
parent 5bac3174df
commit 844eaadee0
28 changed files with 628 additions and 43 deletions
+10
View File
@@ -12,6 +12,7 @@ use crate::domain::events::message::{
};
use crate::domain::events::server::{ServerCreatedEvent, ServerDeletedEvent, ServerUpdatedEvent};
use crate::domain::events::server_tree::ServerTreeInvalidatedEvent;
use crate::domain::events::voice_presence::VoicePresenceEvent;
use crate::models::{server_user, user};
use crate::repositories::Repositories;
use crate::routes::category::mapper::category_model_to_category_response;
@@ -115,6 +116,15 @@ impl RealtimeRouter {
}
pub fn start(self: &Arc<Self>, event_bus: Arc<EventBus>) {
let router = Arc::clone(self);
event_bus.on_async::<VoicePresenceEvent>(move |event| {
let router = Arc::clone(&router);
async move {
let users = router.server_users(event.server_id).await;
let action = if event.joined { "joined" } else { "left" };
router.gateway.send_to_users(users, "VoicePresence", action, event);
}
});
let router = Arc::clone(self);
event_bus.on_async::<MessageCreatedEvent>(move |event| {
let router = Arc::clone(&router);