diff --git a/src/database/guild.rs b/src/database/guild.rs index 5414e441..0939d1bd 100644 --- a/src/database/guild.rs +++ b/src/database/guild.rs @@ -1,20 +1,9 @@ use bson::{bson, doc}; use serde::{Deserialize, Serialize}; -use super::get_collection; +use super::{get_collection, MemberPermissions}; use mongodb::options::FindOneOptions; -bitfield! { - pub struct MemberPermissions(MSB0 [u8]); - u8; - pub get_access, set_access: 7; - pub get_create_invite, set_create_invite: 6; - pub get_kick_members, set_kick_members: 5; - pub get_ban_members, set_ban_members: 4; - pub get_read_messages, set_read_messages: 3; - pub get_send_messages, set_send_messages: 2; -} - pub fn find_member_permissions>>( id: String, guild: String, diff --git a/src/database/mod.rs b/src/database/mod.rs index 6e9222f1..91ad67a1 100644 --- a/src/database/mod.rs +++ b/src/database/mod.rs @@ -24,7 +24,10 @@ pub fn get_collection(collection: &str) -> Collection { get_db().collection(collection) } +pub mod permissions; pub mod channel; pub mod guild; pub mod message; pub mod user; + +pub use permissions::*; diff --git a/src/database/permissions.rs b/src/database/permissions.rs new file mode 100644 index 00000000..d915cf62 --- /dev/null +++ b/src/database/permissions.rs @@ -0,0 +1,14 @@ +bitfield! { + pub struct MemberPermissions(MSB0 [u8]); + u8; + pub get_access, set_access: 7; + pub get_create_invite, set_create_invite: 6; + pub get_kick_members, set_kick_members: 5; + pub get_ban_members, set_ban_members: 4; + pub get_read_messages, set_read_messages: 3; + pub get_send_messages, set_send_messages: 2; +} + +//struct PermissionCalculator { + //channel: Option<>, +//} \ No newline at end of file diff --git a/src/routes/channel.rs b/src/routes/channel.rs index 1ed1adbe..cd53de2f 100644 --- a/src/routes/channel.rs +++ b/src/routes/channel.rs @@ -5,7 +5,7 @@ use crate::websocket; use bson::{bson, doc, from_bson, Bson::UtcDatetime}; use chrono::prelude::*; use num_enum::TryFromPrimitive; -use rocket_contrib::json::{Json, JsonValue}; +use rocket_contrib::json::Json; use serde::{Deserialize, Serialize}; use ulid::Ulid; diff --git a/src/websocket/mod.rs b/src/websocket/mod.rs index f162361f..709c593f 100644 --- a/src/websocket/mod.rs +++ b/src/websocket/mod.rs @@ -172,7 +172,7 @@ pub fn send_message(id: String, message: String) -> std::result::Result<(), ()> let arr = map.get(&id).unwrap(); for item in arr { - if let Err(_) = item.out.send(message.clone()) { + if item.out.send(message.clone()).is_err() { return Err(()); } }