add event_bus_typed
This commit is contained in:
+74
-77
@@ -1,4 +1,7 @@
|
||||
use crate::core::AppState;
|
||||
use crate::domain::events::category::{
|
||||
CategoryCreatedEvent, CategoryDeletedEvent, CategoryUpdatedEvent,
|
||||
};
|
||||
use crate::domain::events::channel::{
|
||||
ChannelCreatedEvent, ChannelDeletedEvent, ChannelUpdatedEvent,
|
||||
};
|
||||
@@ -7,8 +10,9 @@ use crate::domain::events::message::{
|
||||
MessageCreatedEvent, MessageDeletedEvent, MessageReactionAddedEvent,
|
||||
MessageReactionRemovedEvent, MessageUpdatedEvent,
|
||||
};
|
||||
use crate::domain::events::server::{ServerCreatedEvent, ServerDeletedEvent, ServerUpdatedEvent};
|
||||
use crate::domain::events::server_tree::ServerTreeInvalidatedEvent;
|
||||
use crate::models::{category, server, server_user, user};
|
||||
use crate::models::{server_user, user};
|
||||
use crate::repositories::Repositories;
|
||||
use crate::routes::category::mapper::category_model_to_category_response;
|
||||
use crate::routes::channel::mapper::channel_model_to_channel_response;
|
||||
@@ -112,7 +116,7 @@ impl RealtimeRouter {
|
||||
|
||||
pub fn start(self: &Arc<Self>, event_bus: Arc<EventBus>) {
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<MessageCreatedEvent, _, _>("message_created", move |event| {
|
||||
event_bus.on_async::<MessageCreatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let attachments = router
|
||||
@@ -142,7 +146,7 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<MessageUpdatedEvent, _, _>("message_updated", move |event| {
|
||||
event_bus.on_async::<MessageUpdatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let reactions = router
|
||||
@@ -171,7 +175,7 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<MessageDeletedEvent, _, _>("message_deleted", move |event| {
|
||||
event_bus.on_async::<MessageDeletedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router
|
||||
@@ -185,47 +189,41 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<MessageReactionAddedEvent, _, _>(
|
||||
"message_reaction_added",
|
||||
move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router
|
||||
.services
|
||||
.realtime_registry
|
||||
.users_for_channel(event.channel_id);
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
"Reaction",
|
||||
"add",
|
||||
reaction_model_to_response(event.reaction),
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
event_bus.on_async::<MessageReactionAddedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router
|
||||
.services
|
||||
.realtime_registry
|
||||
.users_for_channel(event.channel_id);
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
"Reaction",
|
||||
"add",
|
||||
reaction_model_to_response(event.reaction),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<MessageReactionRemovedEvent, _, _>(
|
||||
"message_reaction_removed",
|
||||
move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router
|
||||
.services
|
||||
.realtime_registry
|
||||
.users_for_channel(event.channel_id);
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
"Reaction",
|
||||
"remove",
|
||||
reaction_model_to_response(event.reaction),
|
||||
);
|
||||
}
|
||||
},
|
||||
);
|
||||
event_bus.on_async::<MessageReactionRemovedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router
|
||||
.services
|
||||
.realtime_registry
|
||||
.users_for_channel(event.channel_id);
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
"Reaction",
|
||||
"remove",
|
||||
reaction_model_to_response(event.reaction),
|
||||
);
|
||||
}
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<ChannelCreatedEvent, _, _>("channel_created", move |event| {
|
||||
event_bus.on_async::<ChannelCreatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
if let Err(error) = router
|
||||
@@ -251,7 +249,7 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<ChannelUpdatedEvent, _, _>("channel_updated", move |event| {
|
||||
event_bus.on_async::<ChannelUpdatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let mut users = router
|
||||
@@ -274,7 +272,7 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<ChannelDeletedEvent, _, _>("channel_deleted", move |event| {
|
||||
event_bus.on_async::<ChannelDeletedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router
|
||||
@@ -292,9 +290,10 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<category::Model, _, _>("category_created", move |category| {
|
||||
event_bus.on_async::<CategoryCreatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let category = event.category;
|
||||
let users = router.server_users(category.server_id).await;
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
@@ -306,9 +305,10 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<category::Model, _, _>("category_updated", move |category| {
|
||||
event_bus.on_async::<CategoryUpdatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let category = event.category;
|
||||
let users = router.server_users(category.server_id).await;
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
@@ -320,9 +320,10 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<category::Model, _, _>("category_deleted", move |category| {
|
||||
event_bus.on_async::<CategoryDeletedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let category = event.category;
|
||||
let users = router.server_users(category.server_id).await;
|
||||
router
|
||||
.gateway
|
||||
@@ -331,9 +332,10 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<server::Model, _, _>("server_created", move |server| {
|
||||
event_bus.on_async::<ServerCreatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let server = event.server;
|
||||
let users = router.server_users(server.id).await;
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
@@ -345,9 +347,10 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<server::Model, _, _>("server_updated", move |server| {
|
||||
event_bus.on_async::<ServerUpdatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let server = event.server;
|
||||
let users = router.server_users(server.id).await;
|
||||
router.gateway.send_to_users(
|
||||
users,
|
||||
@@ -359,37 +362,31 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<(server::Model, Vec<Uuid>), _, _>(
|
||||
"server_deleted",
|
||||
move |(server, users)| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
router
|
||||
.gateway
|
||||
.send_to_users(users, "Server", "remove", server.id);
|
||||
}
|
||||
},
|
||||
);
|
||||
event_bus.on_async::<ServerDeletedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
router
|
||||
.gateway
|
||||
.send_to_users(event.audience, "Server", "remove", event.server.id);
|
||||
}
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<ServerTreeInvalidatedEvent, _, _>(
|
||||
"server_tree_invalidated",
|
||||
move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = match event.user_ids {
|
||||
Some(users) => users,
|
||||
None => router.server_users(event.server_id).await,
|
||||
};
|
||||
router
|
||||
.gateway
|
||||
.send_to_users(users, "ServerTree", "refresh", event.server_id);
|
||||
}
|
||||
},
|
||||
);
|
||||
event_bus.on_async::<ServerTreeInvalidatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = match event.user_ids {
|
||||
Some(users) => users,
|
||||
None => router.server_users(event.server_id).await,
|
||||
};
|
||||
router
|
||||
.gateway
|
||||
.send_to_users(users, "ServerTree", "refresh", event.server_id);
|
||||
}
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<EmojiCreatedEvent, _, _>("emoji_created", move |event| {
|
||||
event_bus.on_async::<EmojiCreatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router.emoji_users(event.emoji.server_id).await;
|
||||
@@ -403,7 +400,7 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<EmojiUpdatedEvent, _, _>("emoji_updated", move |event| {
|
||||
event_bus.on_async::<EmojiUpdatedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let mut users = router.emoji_users(event.emoji.server_id).await;
|
||||
@@ -418,7 +415,7 @@ impl RealtimeRouter {
|
||||
});
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<EmojiDeletedEvent, _, _>("emoji_deleted", move |event| {
|
||||
event_bus.on_async::<EmojiDeletedEvent>(move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
async move {
|
||||
let users = router.emoji_users(event.emoji.server_id).await;
|
||||
|
||||
Reference in New Issue
Block a user