mirror of
https://github.com/teloxide/teloxide.git
synced 2025-03-14 11:44:04 +01:00
replace type Message.from from Sender to User
This commit is contained in:
parent
44471d3090
commit
2242a8bad8
3 changed files with 13 additions and 30 deletions
|
@ -35,7 +35,7 @@ pub enum MessageKind {
|
|||
Common {
|
||||
/// Sender, empty for messages sent to channels.
|
||||
#[serde(flatten)]
|
||||
from: Option<Sender>,
|
||||
from: User,
|
||||
|
||||
#[serde(flatten)]
|
||||
forward_kind: ForwardKind,
|
||||
|
@ -144,17 +144,6 @@ pub enum MessageKind {
|
|||
},
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
|
||||
pub enum Sender {
|
||||
/// Sender of a message from chat.
|
||||
#[serde(rename = "from")]
|
||||
User(User),
|
||||
|
||||
/// Signature of a sender of a message from a channel.
|
||||
#[serde(rename = "author_signature")]
|
||||
Signature(String),
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Eq, Hash, PartialEq, Serialize, Deserialize)]
|
||||
pub enum ForwardedFrom {
|
||||
#[serde(rename = "forward_from")]
|
||||
|
@ -340,7 +329,7 @@ mod getters {
|
|||
Pinned, SuccessfulPayment, SupergroupChatCreated,
|
||||
},
|
||||
},
|
||||
Chat, ForwardedFrom, Message, MessageEntity, PhotoSize, Sender, True,
|
||||
Chat, ForwardedFrom, Message, MessageEntity, PhotoSize, True,
|
||||
User,
|
||||
};
|
||||
|
||||
|
@ -350,9 +339,9 @@ mod getters {
|
|||
/// [telegram docs]: https://core.telegram.org/bots/api#message
|
||||
impl Message {
|
||||
/// NOTE: this is getter for both `from` and `author_signature`
|
||||
pub fn from(&self) -> Option<&Sender> {
|
||||
pub fn from(&self) -> Option<&User> {
|
||||
match &self.kind {
|
||||
Common { from, .. } => from.as_ref(),
|
||||
Common { from, .. } => Some(&from),
|
||||
_ => None,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -51,7 +51,7 @@ impl MessageEntity {
|
|||
mod tests {
|
||||
use super::*;
|
||||
use crate::types::{
|
||||
Chat, ChatKind, ForwardKind, MediaKind, MessageKind, Sender,
|
||||
Chat, ChatKind, ForwardKind, MediaKind, MessageKind,
|
||||
};
|
||||
|
||||
#[test]
|
||||
|
@ -116,14 +116,14 @@ mod tests {
|
|||
photo: None,
|
||||
},
|
||||
kind: MessageKind::Common {
|
||||
from: Some(Sender::User(User {
|
||||
from: Some(User {
|
||||
id: 0,
|
||||
is_bot: false,
|
||||
first_name: "".to_string(),
|
||||
last_name: None,
|
||||
username: None,
|
||||
language_code: None,
|
||||
})),
|
||||
}),
|
||||
forward_kind: ForwardKind::Origin {
|
||||
reply_to_message: None,
|
||||
},
|
||||
|
|
|
@ -4,7 +4,7 @@ use serde::{Deserialize, Serialize};
|
|||
|
||||
use crate::types::{
|
||||
CallbackQuery, Chat, ChosenInlineResult, InlineQuery, Message, Poll,
|
||||
PollAnswer, PreCheckoutQuery, Sender, ShippingQuery, User,
|
||||
PollAnswer, PreCheckoutQuery, ShippingQuery, User,
|
||||
};
|
||||
|
||||
/// This [object] represents an incoming update.
|
||||
|
@ -80,14 +80,8 @@ pub enum UpdateKind {
|
|||
impl Update {
|
||||
pub fn user(&self) -> Option<&User> {
|
||||
match &self.kind {
|
||||
UpdateKind::Message(m) => match m.from() {
|
||||
Some(Sender::User(user)) => Some(user),
|
||||
_ => None,
|
||||
},
|
||||
UpdateKind::EditedMessage(m) => match m.from() {
|
||||
Some(Sender::User(user)) => Some(user),
|
||||
_ => None,
|
||||
},
|
||||
UpdateKind::Message(m) => m.from(),
|
||||
UpdateKind::EditedMessage(m) => m.from(),
|
||||
UpdateKind::CallbackQuery(query) => Some(&query.from),
|
||||
UpdateKind::ChosenInlineResult(chosen) => Some(&chosen.from),
|
||||
UpdateKind::InlineQuery(query) => Some(&query.from),
|
||||
|
@ -114,7 +108,7 @@ impl Update {
|
|||
mod test {
|
||||
use crate::types::{
|
||||
Chat, ChatKind, ForwardKind, LanguageCode, MediaKind, Message,
|
||||
MessageKind, Sender, Update, UpdateKind, User,
|
||||
MessageKind, Update, UpdateKind, User,
|
||||
};
|
||||
|
||||
// TODO: more tests for deserialization
|
||||
|
@ -158,14 +152,14 @@ mod test {
|
|||
photo: None,
|
||||
},
|
||||
kind: MessageKind::Common {
|
||||
from: Some(Sender::User(User {
|
||||
from: Some(User {
|
||||
id: 218_485_655,
|
||||
is_bot: false,
|
||||
first_name: String::from("Waffle"),
|
||||
last_name: None,
|
||||
username: Some(String::from("WaffleLapkin")),
|
||||
language_code: Some(LanguageCode::EN),
|
||||
})),
|
||||
}),
|
||||
forward_kind: ForwardKind::Origin {
|
||||
reply_to_message: None,
|
||||
},
|
||||
|
|
Loading…
Add table
Reference in a new issue