revolt_database/models/server_bans/
model.rs1use revolt_result::Result;
2
3use crate::{Database, MemberCompositeKey, Server};
4
5auto_derived!(
6 pub struct ServerBan {
8 #[serde(rename = "_id")]
10 pub id: MemberCompositeKey,
11 pub reason: Option<String>,
13 }
14);
15
16#[allow(clippy::disallowed_methods)]
17impl ServerBan {
18 pub async fn create(
20 db: &Database,
21 server: &Server,
22 user_id: &str,
23 reason: Option<String>,
24 ) -> Result<ServerBan> {
25 let ban = ServerBan {
26 id: MemberCompositeKey {
27 server: server.id.to_string(),
28 user: user_id.to_string(),
29 },
30 reason,
31 };
32
33 db.insert_ban(&ban).await?;
34 Ok(ban)
35 }
36}