feat: ensure bot invites work correctly

This commit is contained in:
Paul Makles
2023-08-27 12:21:48 +01:00
parent c2412190a8
commit 73f7b8f007
13 changed files with 168 additions and 44 deletions

View File

@@ -158,6 +158,10 @@ auto_derived!(
pub enum MessageAuthor<'a> {
User(&'a User),
Webhook(&'a Webhook),
System {
username: &'a str,
avatar: Option<&'a str>,
},
}
impl Interactions {
@@ -172,6 +176,7 @@ impl<'a> MessageAuthor<'a> {
match self {
MessageAuthor::User(user) => &user.id,
MessageAuthor::Webhook(webhook) => &webhook.id,
MessageAuthor::System { .. } => "00000000000000000000000000",
}
}
@@ -179,6 +184,7 @@ impl<'a> MessageAuthor<'a> {
match self {
MessageAuthor::User(user) => user.avatar.as_ref().map(|file| file.id.as_str()),
MessageAuthor::Webhook(webhook) => webhook.avatar.as_ref().map(|file| file.id.as_str()),
MessageAuthor::System { avatar, .. } => *avatar,
}
}
@@ -186,6 +192,7 @@ impl<'a> MessageAuthor<'a> {
match self {
MessageAuthor::User(user) => &user.username,
MessageAuthor::Webhook(webhook) => &webhook.name,
MessageAuthor::System { username, .. } => username,
}
}
}

View File

@@ -10,8 +10,7 @@ auto_derived_partial!(
pub id: MemberCompositeKey,
/// Time at which this user joined the server
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
pub joined_at: Option<Timestamp>,
pub joined_at: Timestamp,
/// Member's nickname
#[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]