revolt_database/models/server_bans/
ops.rs

1use revolt_result::Result;
2
3use crate::{MemberCompositeKey, ServerBan};
4
5#[cfg(feature = "mongodb")]
6mod mongodb;
7mod reference;
8
9#[async_trait]
10pub trait AbstractServerBans: Sync + Send {
11    /// Insert new ban into database
12    async fn insert_ban(&self, ban: &ServerBan) -> Result<()>;
13
14    /// Fetch a server ban by server and user id
15    async fn fetch_ban(&self, server_id: &str, user_id: &str) -> Result<ServerBan>;
16
17    /// Fetch all bans in a server
18    async fn fetch_bans(&self, server_id: &str) -> Result<Vec<ServerBan>>;
19
20    /// Delete a ban from the database
21    async fn delete_ban(&self, id: &MemberCompositeKey) -> Result<()>;
22}