From 6b8158bf543a328bc0eb175b8423640a04b1412b Mon Sep 17 00:00:00 2001
From: Paul <paulmakles@gmail.com>
Date: Sat, 12 Jun 2021 10:33:31 +0100
Subject: [PATCH] Fix: Use channel_invites collection name instead of invites.
 Was conflicting with invite-only rauth registrations.

---
 set_version.sh                      | 2 +-
 src/database/entities/channel.rs    | 4 ++--
 src/database/entities/invites.rs    | 6 +++---
 src/database/entities/server.rs     | 2 +-
 src/database/guards/reference.rs    | 2 +-
 src/database/migrations/init.rs     | 4 ++--
 src/database/migrations/scripts.rs  | 4 ++--
 src/routes/servers/invites_fetch.rs | 4 ++--
 src/version.rs                      | 2 +-
 9 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/set_version.sh b/set_version.sh
index 0df975c..fbb6134 100755
--- a/set_version.sh
+++ b/set_version.sh
@@ -1,3 +1,3 @@
 #!/bin/bash
-export version=0.5.0-alpha.0
+export version=0.5.0-alpha.0-patch.0
 echo "pub const VERSION: &str = \"${version}\";" > src/version.rs
diff --git a/src/database/entities/channel.rs b/src/database/entities/channel.rs
index 881afd2..043799f 100644
--- a/src/database/entities/channel.rs
+++ b/src/database/entities/channel.rs
@@ -116,7 +116,7 @@ impl Channel {
         let messages = get_collection("messages");
 
         // Delete any invites.
-        get_collection("invites")
+        get_collection("channel_invites")
             .delete_many(
                 doc! {
                     "channel": id
@@ -126,7 +126,7 @@ impl Channel {
             .await
             .map_err(|_| Error::DatabaseError {
                 operation: "delete_many",
-                with: "invites",
+                with: "channel_invites",
             })?;
 
         // Check if there are any attachments we need to delete.
diff --git a/src/database/entities/invites.rs b/src/database/entities/invites.rs
index 7574a17..9d3cfec 100644
--- a/src/database/entities/invites.rs
+++ b/src/database/entities/invites.rs
@@ -44,7 +44,7 @@ impl Invite {
     }
 
     pub async fn get(code: &str) -> Result<Invite> {
-        let doc = get_collection("invites")
+        let doc = get_collection("channel_invites")
             .find_one(doc! { "_id": code }, None)
             .await
             .map_err(|_| Error::DatabaseError {
@@ -60,7 +60,7 @@ impl Invite {
     }
 
     pub async fn save(self) -> Result<()> {
-        get_collection("invites")
+        get_collection("channel_invites")
             .insert_one(
                 to_document(&self).map_err(|_| Error::DatabaseError {
                     operation: "to_bson",
@@ -78,7 +78,7 @@ impl Invite {
     }
 
     pub async fn delete(&self) -> Result<()> {
-        get_collection("invites")
+        get_collection("channel_invites")
             .delete_one(
                 doc! {
                     "_id": self.code()
diff --git a/src/database/entities/server.rs b/src/database/entities/server.rs
index 4984677..b30c5c4 100644
--- a/src/database/entities/server.rs
+++ b/src/database/entities/server.rs
@@ -165,7 +165,7 @@ impl Server {
             })?;
 
         // Delete all channels, members, bans and invites.
-        for with in &["channels", "invites"] {
+        for with in &["channels", "channel_invites"] {
             get_collection(with)
                 .delete_many(
                     doc! {
diff --git a/src/database/guards/reference.rs b/src/database/guards/reference.rs
index 3570a29..adfa7d2 100644
--- a/src/database/guards/reference.rs
+++ b/src/database/guards/reference.rs
@@ -59,7 +59,7 @@ impl Ref {
     }
 
     pub async fn fetch_invite(&self) -> Result<Invite> {
-        self.fetch("invites").await
+        self.fetch("channel_invites").await
     }
 
     pub async fn fetch_member(&self, server: &str) -> Result<Member> {
diff --git a/src/database/migrations/init.rs b/src/database/migrations/init.rs
index d08971f..dcb0630 100644
--- a/src/database/migrations/init.rs
+++ b/src/database/migrations/init.rs
@@ -37,9 +37,9 @@ pub async fn create_database() {
         .await
         .expect("Failed to create server_bans collection.");
 
-    db.create_collection("invites", None)
+    db.create_collection("channel_invites", None)
         .await
-        .expect("Failed to create invites collection.");
+        .expect("Failed to create channel_invites collection.");
 
     db.create_collection("migrations", None)
         .await
diff --git a/src/database/migrations/scripts.rs b/src/database/migrations/scripts.rs
index 0186353..a5d5ece 100644
--- a/src/database/migrations/scripts.rs
+++ b/src/database/migrations/scripts.rs
@@ -152,9 +152,9 @@ pub async fn run_migrations(revision: i32) -> i32 {
             .expect("Failed to create server_bans collection.");
 
         get_db()
-            .create_collection("invites", None)
+            .create_collection("channel_invites", None)
             .await
-            .expect("Failed to create invites collection.");
+            .expect("Failed to create channel_invites collection.");
     }
 
     // Reminder to update LATEST_REVISION when adding new migrations.
diff --git a/src/routes/servers/invites_fetch.rs b/src/routes/servers/invites_fetch.rs
index 9ef3607..d307051 100644
--- a/src/routes/servers/invites_fetch.rs
+++ b/src/routes/servers/invites_fetch.rs
@@ -27,7 +27,7 @@ pub async fn req(user: User, target: Ref) -> Result<JsonValue> {
         Err(Error::MissingPermission)?
     }
 
-    let mut cursor = get_collection("invites")
+    let mut cursor = get_collection("channel_invites")
         .find(
             doc! {
                 "server": target.id
@@ -37,7 +37,7 @@ pub async fn req(user: User, target: Ref) -> Result<JsonValue> {
         .await
         .map_err(|_| Error::DatabaseError {
             operation: "find",
-            with: "invites",
+            with: "channel_invites",
         })?;
 
     let mut invites = vec![];
diff --git a/src/version.rs b/src/version.rs
index ab774c5..ce7db47 100644
--- a/src/version.rs
+++ b/src/version.rs
@@ -1 +1 @@
-pub const VERSION: &str = "0.5.0-alpha.0";
+pub const VERSION: &str = "0.5.0-alpha.0-patch.0";
-- 
GitLab