forked from jmug/stoatchat
Fix: Delete channel query failing due to empty unset.
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
export version=0.5.0-alpha.1
|
export version=0.5.0-alpha.2
|
||||||
echo "pub const VERSION: &str = \"${version}\";" > src/version.rs
|
echo "pub const VERSION: &str = \"${version}\";" > src/version.rs
|
||||||
|
|||||||
@@ -205,9 +205,15 @@ impl Channel {
|
|||||||
// Remove from server object.
|
// Remove from server object.
|
||||||
if let Channel::TextChannel { server, .. } = &self {
|
if let Channel::TextChannel { server, .. } = &self {
|
||||||
let server = Ref::from_unchecked(server.clone()).fetch_server().await?;
|
let server = Ref::from_unchecked(server.clone()).fetch_server().await?;
|
||||||
let mut unset = doc! {};
|
let mut update = doc! {
|
||||||
|
"$pull": {
|
||||||
|
"channels": id
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
if let Some(sys) = &server.system_messages {
|
if let Some(sys) = &server.system_messages {
|
||||||
|
let mut unset = doc! {};
|
||||||
|
|
||||||
if let Some(cid) = &sys.user_joined {
|
if let Some(cid) = &sys.user_joined {
|
||||||
if id == cid {
|
if id == cid {
|
||||||
unset.insert("system_messages.user_joined", 1);
|
unset.insert("system_messages.user_joined", 1);
|
||||||
@@ -231,6 +237,10 @@ impl Channel {
|
|||||||
unset.insert("system_messages.user_banned", 1);
|
unset.insert("system_messages.user_banned", 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if unset.len() > 0 {
|
||||||
|
update.insert("$unset", unset);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
get_collection("servers")
|
get_collection("servers")
|
||||||
@@ -238,12 +248,7 @@ impl Channel {
|
|||||||
doc! {
|
doc! {
|
||||||
"_id": server.id
|
"_id": server.id
|
||||||
},
|
},
|
||||||
doc! {
|
update,
|
||||||
"$pull": {
|
|
||||||
"channels": id
|
|
||||||
},
|
|
||||||
"$unset": unset
|
|
||||||
},
|
|
||||||
None,
|
None,
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ use std::ops;
|
|||||||
#[repr(u32)]
|
#[repr(u32)]
|
||||||
pub enum ServerPermission {
|
pub enum ServerPermission {
|
||||||
View = 0b00000000000000000000000000000001, // 1
|
View = 0b00000000000000000000000000000001, // 1
|
||||||
ManageMembers = 0b00000000000000000000000000000010, // 2
|
ManageRoles = 0b00000000000000000000000000000010, // 2
|
||||||
ManageChannels = 0b00000000000000000000000000000100, // 4
|
ManageChannels = 0b00000000000000000000000000000100, // 4
|
||||||
ManageServer = 0b00000000000000000000000000001000, // 8
|
ManageServer = 0b00000000000000000000000000001000, // 8
|
||||||
KickMembers = 0b00000000000000000000000000010000, // 16
|
KickMembers = 0b00000000000000000000000000010000, // 16
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
use crate::database::*;
|
use crate::database::*;
|
||||||
use crate::util::result::Error;
|
|
||||||
|
|
||||||
use super::hive::get_hive;
|
use super::hive::get_hive;
|
||||||
use futures::StreamExt;
|
use futures::StreamExt;
|
||||||
|
|||||||
Reference in New Issue
Block a user