diff --git a/set_version.sh b/set_version.sh index e84cc49d2431d60770fcea6cba1ccc624e9503eb..45686247b26cd31e5652ec5e7a5b0849c565bd51 100755 --- a/set_version.sh +++ b/set_version.sh @@ -1,3 +1,3 @@ #!/bin/bash -export version=0.5.1-alpha.0 +export version=0.5.1-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 97cee87c36371c18718a0b5f0447d03f52214a05..5e134cf9be1d07dab07164c2500dcefdc8b9589c 100644 --- a/src/database/entities/channel.rs +++ b/src/database/entities/channel.rs @@ -232,59 +232,63 @@ impl Channel { } // Remove from server object. - if let Channel::TextChannel { server, .. } = &self { - let server = Ref::from_unchecked(server.clone()).fetch_server().await?; - let mut update = doc! { - "$pull": { - "channels": id - } - }; + match &self { + Channel::TextChannel { server, .. } + | Channel::VoiceChannel { server, .. } => { + let server = Ref::from_unchecked(server.clone()).fetch_server().await?; + let mut update = doc! { + "$pull": { + "channels": id + } + }; - if let Some(sys) = &server.system_messages { - let mut unset = doc! {}; + if let Some(sys) = &server.system_messages { + let mut unset = doc! {}; - if let Some(cid) = &sys.user_joined { - if id == cid { - unset.insert("system_messages.user_joined", 1); + if let Some(cid) = &sys.user_joined { + if id == cid { + unset.insert("system_messages.user_joined", 1); + } } - } - if let Some(cid) = &sys.user_left { - if id == cid { - unset.insert("system_messages.user_left", 1); + if let Some(cid) = &sys.user_left { + if id == cid { + unset.insert("system_messages.user_left", 1); + } } - } - if let Some(cid) = &sys.user_kicked { - if id == cid { - unset.insert("system_messages.user_kicked", 1); + if let Some(cid) = &sys.user_kicked { + if id == cid { + unset.insert("system_messages.user_kicked", 1); + } } - } - if let Some(cid) = &sys.user_banned { - if id == cid { - unset.insert("system_messages.user_banned", 1); + if let Some(cid) = &sys.user_banned { + if id == cid { + unset.insert("system_messages.user_banned", 1); + } } - } - if unset.len() > 0 { - update.insert("$unset", unset); + if unset.len() > 0 { + update.insert("$unset", unset); + } } - } - get_collection("servers") - .update_one( - doc! { - "_id": server.id - }, - update, - None, - ) - .await - .map_err(|_| Error::DatabaseError { - operation: "update_one", - with: "servers", - })?; + get_collection("servers") + .update_one( + doc! { + "_id": server.id + }, + update, + None, + ) + .await + .map_err(|_| Error::DatabaseError { + operation: "update_one", + with: "servers", + })?; + }, + _ => {} } // Finally, delete the channel object. diff --git a/src/routes/channels/edit_channel.rs b/src/routes/channels/edit_channel.rs index 544c464a4ec7123ae60bd09b63c3c863fd8e0f6c..74b16ce64edfb0bde59ed059c699d0e6fb7a78f2 100644 --- a/src/routes/channels/edit_channel.rs +++ b/src/routes/channels/edit_channel.rs @@ -45,7 +45,9 @@ pub async fn req(user: User, target: Ref, data: Json<Data>) -> Result<()> { } match &target { - Channel::Group { id, icon, .. } | Channel::TextChannel { id, icon, .. } => { + Channel::Group { id, icon, .. } + | Channel::TextChannel { id, icon, .. } + | Channel::VoiceChannel { id, icon, .. } => { let mut set = doc! {}; let mut unset = doc! {}; diff --git a/src/routes/invites/invite_fetch.rs b/src/routes/invites/invite_fetch.rs index 1819baf70e44038f44696227d26097ed2b638d2b..e76039d42479a15a3822b9937b5543d4d7daab07 100644 --- a/src/routes/invites/invite_fetch.rs +++ b/src/routes/invites/invite_fetch.rs @@ -35,29 +35,24 @@ pub async fn req(target: Ref) -> Result<JsonValue> { let channel = Ref::from_unchecked(channel).fetch_channel().await?; let creator = Ref::from_unchecked(creator).fetch_user().await?; - if let Channel::TextChannel { - id, - server, - name, - description, - .. - } = channel - { - let server = Ref::from_unchecked(server).fetch_server().await?; - - Ok(json!(InviteResponse::Server { - server_id: server.id, - server_name: server.name, - server_icon: server.icon, - server_banner: server.banner, - channel_id: id, - channel_name: name, - channel_description: description, - user_name: creator.username, - user_avatar: creator.avatar - })) - } else { - unreachable!() + match channel { + Channel::TextChannel { id, server, name, description, .. } + | Channel::VoiceChannel { id, server, name, description, .. } => { + let server = Ref::from_unchecked(server).fetch_server().await?; + + Ok(json!(InviteResponse::Server { + server_id: server.id, + server_name: server.name, + server_icon: server.icon, + server_banner: server.banner, + channel_id: id, + channel_name: name, + channel_description: description, + user_name: creator.username, + user_avatar: creator.avatar + })) + } + _ => unreachable!() } } _ => unreachable!(), diff --git a/src/routes/invites/invite_join.rs b/src/routes/invites/invite_join.rs index afa6baec59685a96fda83a7b8d2e24f4a89118f1..517b732e2d64cfec6033c4e651d7a1a6b85e7130 100644 --- a/src/routes/invites/invite_join.rs +++ b/src/routes/invites/invite_join.rs @@ -10,10 +10,12 @@ pub async fn req(user: User, target: Ref) -> Result<JsonValue> { match target { Invite::Server { channel, .. } => { let channel = Ref::from_unchecked(channel).fetch_channel().await?; - let server = if let Channel::TextChannel { server, .. } = &channel { - Ref::from_unchecked(server.clone()).fetch_server().await? - } else { - unreachable!() + let server = match &channel { + Channel::TextChannel { server, .. } + | Channel::VoiceChannel { server, .. } => { + Ref::from_unchecked(server.clone()).fetch_server().await? + } + _ => unreachable!() }; server.join_member(&user.id).await?; diff --git a/src/version.rs b/src/version.rs index 0625890f94a042255674370d59c10059fa59e9e2..25c37d40be58cb0f1777a40c92a2c6b3d51dcec8 100644 --- a/src/version.rs +++ b/src/version.rs @@ -1 +1 @@ -pub const VERSION: &str = "0.5.1-alpha.0"; +pub const VERSION: &str = "0.5.1-alpha.0-patch.0";