From e290d168acde6ac28a951bc951b356586a615148 Mon Sep 17 00:00:00 2001 From: Paul Makles Date: Wed, 10 Jul 2024 14:12:53 +0100 Subject: [PATCH] feat: add `reason` to ServerMemberLeave event closes #314 --- crates/bonfire/src/events/impl.rs | 2 +- crates/core/database/src/events/client.rs | 10 +++++++--- .../core/database/src/models/server_members/model.rs | 1 + 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/crates/bonfire/src/events/impl.rs b/crates/bonfire/src/events/impl.rs index 325267f4..f574e578 100644 --- a/crates/bonfire/src/events/impl.rs +++ b/crates/bonfire/src/events/impl.rs @@ -443,7 +443,7 @@ impl State { EventV1::ServerMemberJoin { .. } => { // We will always receive ServerCreate when joining a new server. } - EventV1::ServerMemberLeave { id, user } => { + EventV1::ServerMemberLeave { id, user, .. } => { if user == &self.cache.user_id { self.remove_subscription(id).await; diff --git a/crates/core/database/src/events/client.rs b/crates/core/database/src/events/client.rs index dd20dd4f..74338bfe 100644 --- a/crates/core/database/src/events/client.rs +++ b/crates/core/database/src/events/client.rs @@ -4,8 +4,8 @@ use serde::{Deserialize, Serialize}; use revolt_models::v0::{ AppendMessage, Channel, Emoji, FieldsChannel, FieldsMember, FieldsRole, FieldsServer, FieldsUser, FieldsWebhook, Member, MemberCompositeKey, Message, PartialChannel, PartialMember, - PartialMessage, PartialRole, PartialServer, PartialUser, PartialWebhook, Report, Server, User, - UserSettings, Webhook, + PartialMessage, PartialRole, PartialServer, PartialUser, PartialWebhook, RemovalIntention, + Report, Server, User, UserSettings, Webhook, }; use revolt_result::Error; @@ -136,7 +136,11 @@ pub enum EventV1 { ServerMemberJoin { id: String, user: String }, /// User left server - ServerMemberLeave { id: String, user: String }, + ServerMemberLeave { + id: String, + user: String, + reason: RemovalIntention, + }, /// Server role created or updated ServerRoleUpdate { diff --git a/crates/core/database/src/models/server_members/model.rs b/crates/core/database/src/models/server_members/model.rs index 2a38b8bb..0ca09ed4 100644 --- a/crates/core/database/src/models/server_members/model.rs +++ b/crates/core/database/src/models/server_members/model.rs @@ -229,6 +229,7 @@ impl Member { EventV1::ServerMemberLeave { id: self.id.server.to_string(), user: self.id.user.to_string(), + reason: intention.clone().into(), } .p(self.id.server.to_string()) .await;