diff --git a/src/database/guild.rs b/src/database/guild.rs index 5414e4415857f75b496f5a63553d204e025b7e83..0939d1bde1930968725bdbe2b559b80cefad9f76 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<C: Into<Option<String>>>( id: String, guild: String, diff --git a/src/database/mod.rs b/src/database/mod.rs index 6e9222f188bdfd4d8f01985a018b16a02ac7ff66..91ad67a19803e220dc6be9fb3849179c3f5000bd 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 0000000000000000000000000000000000000000..d915cf6237818ba5fbe612f521edcb79ae05de95 --- /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 1ed1adbe5bb35d04d1e0d90f56ad2f789e95cd7d..cd53de2fb44f5a6efcbbc110bba865c4dde7f1a8 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 f162361f8c474a0c3eece29ced2a88ba5c10b9bf..709c593f54655b58075892ee5d216b1bbe640c95 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(()); } }