init
This commit is contained in:
@@ -6,6 +6,7 @@ use crate::domain::events::message::{
|
||||
MessageCreatedEvent, MessageDeletedEvent, MessageReactionAddedEvent,
|
||||
MessageReactionRemovedEvent, MessageUpdatedEvent,
|
||||
};
|
||||
use crate::domain::events::server_tree::ServerTreeInvalidatedEvent;
|
||||
use crate::models::{category, server, server_user, user};
|
||||
use crate::repositories::Repositories;
|
||||
use crate::routes::category::mapper::category_model_to_category_response;
|
||||
@@ -369,6 +370,23 @@ impl RealtimeRouter {
|
||||
},
|
||||
);
|
||||
|
||||
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);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
let router = Arc::clone(self);
|
||||
event_bus.on_async::<EmojiCreatedEvent, _, _>("emoji_created", move |event| {
|
||||
let router = Arc::clone(&router);
|
||||
|
||||
@@ -299,6 +299,9 @@ pub async fn set_user_permission(
|
||||
.server
|
||||
.set_user_permission(server_id, user_id, payload.permissions)
|
||||
.await?;
|
||||
state
|
||||
.event_bus
|
||||
.emit("server_user_permission_updated", (server_id, user_id));
|
||||
|
||||
let permission = state
|
||||
.repositories
|
||||
@@ -346,6 +349,9 @@ pub async fn remove_user_permission(
|
||||
.server
|
||||
.remove_user_permission(server_id, user_id)
|
||||
.await?;
|
||||
state
|
||||
.event_bus
|
||||
.emit("server_user_permission_updated", (server_id, user_id));
|
||||
|
||||
Ok(StatusCode::NO_CONTENT)
|
||||
}
|
||||
@@ -406,6 +412,9 @@ pub async fn set_role_permission(
|
||||
.server
|
||||
.set_role_permission(server_id, role_id, payload.permissions)
|
||||
.await?;
|
||||
state
|
||||
.event_bus
|
||||
.emit("server_role_permission_updated", (role_id, server_id));
|
||||
|
||||
let permission = state
|
||||
.repositories
|
||||
@@ -453,6 +462,9 @@ pub async fn remove_role_permission(
|
||||
.server
|
||||
.remove_role_permission(server_id, role_id)
|
||||
.await?;
|
||||
state
|
||||
.event_bus
|
||||
.emit("server_role_permission_updated", (role_id, server_id));
|
||||
|
||||
Ok(StatusCode::NO_CONTENT)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user