diff --git a/src/routes/channel.rs b/src/routes/channel.rs index 8dbf4986df096e398c8060b40935c3c4eb8604eb..c49574ed2979f21f3aa8eb4df2458cbe23a68689 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." }), )),