init
This commit is contained in:
+28
-8
@@ -1,6 +1,6 @@
|
||||
use crate::services::ServicesContext;
|
||||
use crate::models::role;
|
||||
use sea_orm::{ActiveModelTrait, ColumnTrait, EntityTrait, QueryFilter, TransactionTrait, Set};
|
||||
use sea_orm::{ActiveModelTrait, EntityTrait, TransactionTrait};
|
||||
use std::sync::Arc;
|
||||
use uuid::Uuid;
|
||||
|
||||
@@ -23,13 +23,13 @@ impl RoleService {
|
||||
|
||||
let txn = db.begin().await?;
|
||||
|
||||
let group = active.insert(&txn).await?;
|
||||
let role = active.insert(&txn).await?;
|
||||
|
||||
txn.commit().await?;
|
||||
|
||||
event_bus.emit("group_created", group.clone());
|
||||
event_bus.emit("role_created", role.clone());
|
||||
|
||||
Ok(group)
|
||||
Ok(role)
|
||||
}
|
||||
|
||||
pub async fn update_role(
|
||||
@@ -41,13 +41,13 @@ impl RoleService {
|
||||
|
||||
let txn = db.begin().await?;
|
||||
|
||||
let group = active.update(&txn).await?;
|
||||
let role = active.update(&txn).await?;
|
||||
|
||||
txn.commit().await?;
|
||||
|
||||
event_bus.emit("group_updated", group.clone());
|
||||
event_bus.emit("role_updated", role.clone());
|
||||
|
||||
Ok(group)
|
||||
Ok(role)
|
||||
}
|
||||
|
||||
pub async fn delete_role(&self, id: Uuid) -> Result<bool, anyhow::Error> {
|
||||
@@ -65,9 +65,29 @@ impl RoleService {
|
||||
txn.commit().await?;
|
||||
|
||||
if deleted {
|
||||
event_bus.emit("group_deleted", id);
|
||||
event_bus.emit("role_deleted", id);
|
||||
}
|
||||
|
||||
Ok(deleted)
|
||||
}
|
||||
|
||||
pub async fn add_member(&self, role_id: Uuid, user_id: Uuid, server_id: Uuid) -> Result<bool, anyhow::Error> {
|
||||
let added = self.service_context.repositories.role.add_member(role_id, user_id).await?;
|
||||
if added {
|
||||
self.service_context
|
||||
.event_bus
|
||||
.emit("role_user_created", (role_id, user_id, server_id));
|
||||
}
|
||||
Ok(added)
|
||||
}
|
||||
|
||||
pub async fn remove_member(&self, role_id: Uuid, user_id: Uuid, server_id: Uuid) -> Result<bool, anyhow::Error> {
|
||||
let removed = self.service_context.repositories.role.remove_member(role_id, user_id).await?;
|
||||
if removed {
|
||||
self.service_context
|
||||
.event_bus
|
||||
.emit("role_user_deleted", (role_id, user_id, server_id));
|
||||
}
|
||||
Ok(removed)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user