From b21a6f2231935434d69875c5c9a1dc490ede87eb Mon Sep 17 00:00:00 2001
From: Paul Makles <paulmakles@gmail.com>
Date: Wed, 8 Apr 2020 13:22:07 +0100
Subject: [PATCH] Commit working draft, for perms.

---
 src/database/guild.rs       | 13 +------------
 src/database/mod.rs         |  3 +++
 src/database/permissions.rs | 14 ++++++++++++++
 src/routes/channel.rs       |  2 +-
 src/websocket/mod.rs        |  2 +-
 5 files changed, 20 insertions(+), 14 deletions(-)
 create mode 100644 src/database/permissions.rs

diff --git a/src/database/guild.rs b/src/database/guild.rs
index 5414e44..0939d1b 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 6e9222f..91ad67a 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 0000000..d915cf6
--- /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 1ed1adb..cd53de2 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 f162361..709c593 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(());
                 }
             }
-- 
GitLab