Add available_reactions field to Chat

This commit is contained in:
Andrey Brusnik 2024-07-18 00:12:05 +04:00
parent 409c3d5403
commit 1e25bf1c96
No known key found for this signature in database
GPG key ID: D33232F28CFF442C
3 changed files with 53 additions and 4 deletions

View file

@ -1,7 +1,8 @@
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use crate::types::{ use crate::types::{
ChatFullInfo, ChatId, ChatLocation, ChatPermissions, ChatPhoto, Message, Seconds, True, User, ChatFullInfo, ChatId, ChatLocation, ChatPermissions, ChatPhoto, Message, ReactionType, Seconds,
True, User,
}; };
/// This object represents a chat. /// This object represents a chat.
@ -21,6 +22,12 @@ pub struct Chat {
/// [`GetChat`]: crate::payloads::GetChat /// [`GetChat`]: crate::payloads::GetChat
pub photo: Option<ChatPhoto>, pub photo: Option<ChatPhoto>,
/// List of available reactions allowed in the chat. If omitted, then all
/// emoji reactions are allowed. Returned only from [`GetChat`].
///
/// [`GetChat`]: crate::payloads::GetChat
pub available_reactions: Option<Vec<ReactionType>>,
/// The most recent pinned message (by sending date). Returned only in /// The most recent pinned message (by sending date). Returned only in
/// [`GetChat`]. /// [`GetChat`].
/// ///
@ -602,13 +609,29 @@ mod tests {
has_protected_content: None, has_protected_content: None,
}), }),
photo: None, photo: None,
available_reactions: Some(vec![ReactionType {
kind: ReactionTypeKind::Emoji { emoji: "🌭".to_owned() },
}]),
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,
has_aggressive_anti_spam_enabled: false, has_aggressive_anti_spam_enabled: false,
chat_full_info: ChatFullInfo::default(), chat_full_info: ChatFullInfo::default(),
}; };
let actual = from_str(r#"{"id":-1,"type":"channel","username":"channel_name"}"#).unwrap(); let actual = from_str(
r#"{
"id": -1,
"type": "channel",
"username": "channel_name",
"available_reactions": [
{
"type": "emoji",
"emoji": "🌭"
}
]
}"#,
)
.unwrap();
assert_eq!(expected, actual); assert_eq!(expected, actual);
} }
@ -626,13 +649,29 @@ mod tests {
has_restricted_voice_and_video_messages: None, has_restricted_voice_and_video_messages: None,
}), }),
photo: None, photo: None,
available_reactions: Some(vec![ReactionType {
kind: ReactionTypeKind::Emoji { emoji: "🌭".to_owned() },
}]),
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,
has_aggressive_anti_spam_enabled: false, has_aggressive_anti_spam_enabled: false,
chat_full_info: ChatFullInfo::default() chat_full_info: ChatFullInfo::default()
}, },
from_str(r#"{"id":0,"type":"private","username":"username","first_name":"Anon"}"#) from_str(
r#"{
"id": 0,
"type": "private",
"username": "username",
"first_name": "Anon",
"available_reactions": [
{
"type": "emoji",
"emoji": "🌭"
}
]
}"#
)
.unwrap() .unwrap()
); );
} }
@ -650,6 +689,7 @@ mod tests {
has_restricted_voice_and_video_messages: None, has_restricted_voice_and_video_messages: None,
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,

View file

@ -1841,6 +1841,7 @@ mod tests {
has_restricted_voice_and_video_messages: None has_restricted_voice_and_video_messages: None
}), }),
photo: None, photo: None,
available_reactions: None,
has_aggressive_anti_spam_enabled: false, has_aggressive_anti_spam_enabled: false,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
@ -2078,6 +2079,7 @@ mod tests {
}), }),
message_auto_delete_time: None, message_auto_delete_time: None,
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
has_hidden_members: false, has_hidden_members: false,
has_aggressive_anti_spam_enabled: false, has_aggressive_anti_spam_enabled: false,
@ -2368,6 +2370,7 @@ mod tests {
has_protected_content: None has_protected_content: None
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,
@ -2476,6 +2479,7 @@ mod tests {
has_protected_content: None has_protected_content: None
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,
@ -2498,6 +2502,7 @@ mod tests {
has_protected_content: None has_protected_content: None
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,
@ -2598,6 +2603,7 @@ mod tests {
has_protected_content: None has_protected_content: None
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,

View file

@ -482,6 +482,7 @@ mod test {
has_restricted_voice_and_video_messages: None, has_restricted_voice_and_video_messages: None,
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,
@ -829,6 +830,7 @@ mod test {
has_protected_content: None, has_protected_content: None,
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,
@ -908,6 +910,7 @@ mod test {
has_protected_content: None, has_protected_content: None,
}), }),
photo: None, photo: None,
available_reactions: None,
pinned_message: None, pinned_message: None,
message_auto_delete_time: None, message_auto_delete_time: None,
has_hidden_members: false, has_hidden_members: false,