add event_bus_typed

This commit is contained in:
Nell committed 2026-09-23 10:36:14 +02:00
1 parent 3780092fa6
commit ab97dcc8d9
35 files changed
+1376 -3228

No files matched your search

+29 -9
View File
@@ -1,3 +1,7 @@
use crate::domain::events::server::{
ServerCreatedEvent, ServerDeletedEvent, ServerUpdatedEvent, ServerUserCreatedEvent,
ServerUserDeletedEvent,
};
use crate::models::{role, role_user, server, server_user};
use crate::services::ServicesContext;
use sea_orm::{
@@ -63,7 +67,9 @@ impl ServerService {
txn.commit().await?;
event_bus.emit("server_created", srv.clone());
event_bus.emit(ServerCreatedEvent {
server: srv.clone(),
});
Ok(srv)
}
@@ -97,7 +103,7 @@ impl ServerService {
return Ok(srv);
}
server_user::ActiveModel {
let membership = server_user::ActiveModel {
server_id: Set(server_id),
user_id: Set(user_id),
..Default::default()
@@ -119,7 +125,9 @@ impl ServerService {
.await?;
txn.commit().await?;
event_bus.emit("server_user_created", (server_id, user_id));
event_bus.emit(ServerUserCreatedEvent {
server_user: membership,
});
self.service_context
.repositories
.read_state
@@ -152,7 +160,9 @@ impl ServerService {
txn.commit().await?;
event_bus.emit("server_updated", srv.clone());
event_bus.emit(ServerUpdatedEvent {
server: srv.clone(),
});
Ok(srv)
}
@@ -182,7 +192,10 @@ impl ServerService {
txn.commit().await?;
if deleted {
event_bus.emit("server_deleted", (existing, audience));
event_bus.emit(ServerDeletedEvent {
server: existing,
audience,
});
}
Ok(deleted)
@@ -194,7 +207,7 @@ impl ServerService {
let txn = db.begin().await?;
crate::models::server_user::ActiveModel {
let membership = crate::models::server_user::ActiveModel {
server_id: Set(server_id),
user_id: Set(user_id),
..Default::default()
@@ -214,7 +227,9 @@ impl ServerService {
txn.commit().await?;
event_bus.emit("server_user_created", (server_id, user_id));
event_bus.emit(ServerUserCreatedEvent {
server_user: membership,
});
Ok(true)
}
@@ -225,6 +240,11 @@ impl ServerService {
let txn = db.begin().await?;
let membership = server_user::Entity::find()
.filter(server_user::Column::ServerId.eq(server_id))
.filter(server_user::Column::UserId.eq(user_id))
.one(&txn)
.await?;
let res = crate::models::server_user::Entity::delete_many()
.filter(crate::models::server_user::Column::ServerId.eq(server_id))
.filter(crate::models::server_user::Column::UserId.eq(user_id))
@@ -235,8 +255,8 @@ impl ServerService {
txn.commit().await?;
if deleted {
event_bus.emit("server_user_deleted", (server_id, user_id));
if let Some(server_user) = membership.filter(|_| deleted) {
event_bus.emit(ServerUserDeletedEvent { server_user });
}
Ok(deleted)