From 2063eeac3db1d7fa8c449c82d54b60a5aabd69c8 Mon Sep 17 00:00:00 2001
From: Paul Makles <paulmakles@gmail.com>
Date: Sat, 11 Apr 2020 22:57:27 +0100
Subject: [PATCH] Delete invites when channel is deleted.

---
 src/routes/channel.rs | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/routes/channel.rs b/src/routes/channel.rs
index 8dbf498..c49574e 100644
--- a/src/routes/channel.rs
+++ b/src/routes/channel.rs
@@ -360,7 +360,28 @@ pub fn delete(user: UserRef, target: ChannelRef) -> Option<Response> {
                 }
             }
         }
-        2 => try_delete(),
+        2 => {
+            if database::get_collection("guilds")
+                .update_one(
+                    doc! { "_id": target.guild.unwrap() },
+                    doc! {
+                        "$pull": {
+                            "invites": {
+                                "channel": &target.id
+                            }
+                        }
+                    },
+                    None,
+                )
+                .is_ok()
+            {
+                try_delete()
+            } else {
+                Some(Response::InternalServerError(
+                    json!({ "error": "Failed to remove invites." }),
+                ))
+            }
+        }
         _ => Some(Response::InternalServerError(
             json!({ "error": "Unknown error has occurred." }),
         )),
-- 
GitLab