Add message delete route.

This commit is contained in:
Paul Makles
2021-01-18 21:02:04 +00:00
parent accd6d7789
commit c562d33c8f
6 changed files with 52 additions and 5 deletions

View File

@@ -71,7 +71,7 @@ impl Message {
pub async fn publish_delete(self) -> Result<()> {
let channel = self.channel.clone();
ClientboundNotification::MessageDelete(self.id)
ClientboundNotification::MessageDelete { id: self.id }
.publish(channel)
.await
.ok();

View File

@@ -7,6 +7,7 @@ use std::ops;
pub enum ChannelPermission {
View = 1,
SendMessage = 2,
ManageMessages = 4,
}
bitfield! {
@@ -14,6 +15,7 @@ bitfield! {
u32;
pub get_view, _: 31;
pub get_send_message, _: 30;
pub get_manage_messages, _: 29;
}
impl_op_ex!(+ |a: &ChannelPermission, b: &ChannelPermission| -> u32 { *a as u32 | *b as u32 });
@@ -23,7 +25,9 @@ pub async fn calculate(user: &User, target: &Channel) -> ChannelPermissions<[u32
match target {
Channel::SavedMessages { user: owner, .. } => {
if &user.id == owner {
ChannelPermissions([ChannelPermission::View + ChannelPermission::SendMessage])
ChannelPermissions([ChannelPermission::View
+ ChannelPermission::SendMessage
+ ChannelPermission::ManageMessages])
} else {
ChannelPermissions([0])
}