diff --git a/CHANGELOG.md b/CHANGELOG.md index 5cf4b84a..ad248230 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [unreleased] +### Added + +- `GetUpdatesFaultTolerant` - fault toletant version of `GetUpdates` ([#58][pr58]) (**BC**) + +[pr58]: https://github.com/teloxide/teloxide-core/pull/58 + ### Fixed - Fix typos in payloads ([#57][pr57]): diff --git a/src/adaptors/auto_send.rs b/src/adaptors/auto_send.rs index 3cacee42..f091eae8 100644 --- a/src/adaptors/auto_send.rs +++ b/src/adaptors/auto_send.rs @@ -101,7 +101,8 @@ where add_sticker_to_set, set_sticker_position_in_set, delete_sticker_from_set, set_sticker_set_thumb, send_invoice, answer_shipping_query, answer_pre_checkout_query, set_passport_data_errors, send_game, - set_game_score, set_game_score_inline, get_game_high_scores => f, fty + set_game_score, set_game_score_inline, get_game_high_scores, + get_updates_fault_tolerant => f, fty } } diff --git a/src/adaptors/cache_me.rs b/src/adaptors/cache_me.rs index 541c9d42..f964f6a4 100644 --- a/src/adaptors/cache_me.rs +++ b/src/adaptors/cache_me.rs @@ -118,7 +118,7 @@ where add_sticker_to_set, set_sticker_position_in_set, delete_sticker_from_set, set_sticker_set_thumb, send_invoice, answer_shipping_query, answer_pre_checkout_query, set_passport_data_errors, send_game, - set_game_score, set_game_score_inline, get_game_high_scores => f, fty + set_game_score, set_game_score_inline, get_game_high_scores, get_updates_fault_tolerant => f, fty } } diff --git a/src/adaptors/parse_mode.rs b/src/adaptors/parse_mode.rs index f5802d2d..f35cd3b2 100644 --- a/src/adaptors/parse_mode.rs +++ b/src/adaptors/parse_mode.rs @@ -112,7 +112,7 @@ impl<B: Requester> Requester for DefaultParseMode<B> { add_sticker_to_set, set_sticker_position_in_set, delete_sticker_from_set, set_sticker_set_thumb, send_invoice, answer_shipping_query, answer_pre_checkout_query, set_passport_data_errors, send_game, set_game_score, - set_game_score_inline, get_game_high_scores => fid, fty + set_game_score_inline, get_game_high_scores, get_updates_fault_tolerant => fid, fty } } diff --git a/src/adaptors/throttle.rs b/src/adaptors/throttle.rs index c431611d..efdda09f 100644 --- a/src/adaptors/throttle.rs +++ b/src/adaptors/throttle.rs @@ -469,7 +469,7 @@ where add_sticker_to_set, set_sticker_position_in_set, delete_sticker_from_set, set_sticker_set_thumb, answer_shipping_query, answer_pre_checkout_query, set_passport_data_errors, send_game, set_game_score, set_game_score_inline, - get_game_high_scores => fid, ftyid + get_game_high_scores, get_updates_fault_tolerant => fid, ftyid } } diff --git a/src/bot/api.rs b/src/bot/api.rs index 6ee44da9..7abb02ff 100644 --- a/src/bot/api.rs +++ b/src/bot/api.rs @@ -970,4 +970,13 @@ impl Requester for Bot { payloads::GetGameHighScores::new(user_id, target), ) } + + type GetUpdatesFaultTolerant = JsonRequest<payloads::GetUpdatesFaultTolerant>; + + fn get_updates_fault_tolerant(&self) -> Self::GetUpdatesFaultTolerant { + Self::GetUpdatesFaultTolerant::new( + self.clone(), + payloads::GetUpdatesFaultTolerant(payloads::GetUpdates::new()), + ) + } } diff --git a/src/local_macros.rs b/src/local_macros.rs index bf743779..9c7fd33f 100644 --- a/src/local_macros.rs +++ b/src/local_macros.rs @@ -393,7 +393,7 @@ macro_rules! impl_payload { } #[macro_use] -// This macro is auto generated by `cg` <https://github.com/teloxide/cg> (8ee7ef2). +// This macro is auto generated by `cg` <https://github.com/teloxide/cg> (24572cd + local changes). // **DO NOT EDIT THIS MACRO**, // edit `cg` instead. macro_rules! requester_forward { @@ -403,8 +403,6 @@ macro_rules! requester_forward { requester_forward!(@method $rest $body $ty); )* }; - - (@method get_updates $body:ident $ty:ident) => { type GetUpdates = $ty![GetUpdates]; @@ -1046,6 +1044,14 @@ macro_rules! requester_forward { $body!(get_game_high_scores this (user_id: u32, target: T)) } }; + (@method get_updates_fault_tolerant $body:ident $ty:ident) => { + type GetUpdatesFaultTolerant = $ty![GetUpdatesFaultTolerant]; + + fn get_updates_fault_tolerant(&self) -> Self::GetUpdatesFaultTolerant { + let this = self; + $body!(get_updates_fault_tolerant this ()) + } + }; } #[macro_use] diff --git a/src/payloads.rs b/src/payloads.rs index cf31ea9d..685fafba 100644 --- a/src/payloads.rs +++ b/src/payloads.rs @@ -178,3 +178,9 @@ pub use stop_poll::{StopPoll, StopPollSetters}; pub use unban_chat_member::{UnbanChatMember, UnbanChatMemberSetters}; pub use unpin_chat_message::{UnpinChatMessage, UnpinChatMessageSetters}; pub use upload_sticker_file::{UploadStickerFile, UploadStickerFileSetters}; + +// end of auto generated block + +mod get_updates_fault_tolerant; + +pub use get_updates_fault_tolerant::GetUpdatesFaultTolerant; diff --git a/src/payloads/get_updates_fault_tolerant.rs b/src/payloads/get_updates_fault_tolerant.rs new file mode 100644 index 00000000..6473815c --- /dev/null +++ b/src/payloads/get_updates_fault_tolerant.rs @@ -0,0 +1,18 @@ +use serde::Serialize; + +use crate::{ + payloads::GetUpdates, + requests::Payload, + types::{NonStrictVec, Update}, +}; + +/// Fault tollerant version of [`GetUpdates`]. +#[derive(Debug, PartialEq, Eq, Hash, Default, Clone, Serialize)] +#[serde(transparent)] +pub struct GetUpdatesFaultTolerant(pub GetUpdates); + +impl Payload for GetUpdatesFaultTolerant { + type Output = NonStrictVec<Update>; + + const NAME: &'static str = GetUpdates::NAME; +} diff --git a/src/requests/requester.rs b/src/requests/requester.rs index 69a79199..336f2c3c 100644 --- a/src/requests/requester.rs +++ b/src/requests/requester.rs @@ -53,7 +53,7 @@ pub trait Requester { /// Error type returned by all requests. type Err: std::error::Error + Send; - // This block is auto generated by `cg` <https://github.com/teloxide/cg> (8ee7ef2). + // This block is auto generated by `cg` <https://github.com/teloxide/cg> (dec2d73). // **DO NOT EDIT THIS BLOCK**, // edit `cg` instead. @@ -749,6 +749,11 @@ pub trait Requester { fn get_game_high_scores<T>(&self, user_id: u32, target: T) -> Self::GetGameHighScores where T: Into<TargetMessage>; + + type GetUpdatesFaultTolerant: Request<Payload = GetUpdatesFaultTolerant, Err = Self::Err>; + + /// For Telegram documentation see [`GetUpdatesFaultTolerant`]. + fn get_updates_fault_tolerant(&self) -> Self::GetUpdatesFaultTolerant; } macro_rules! fty { @@ -786,7 +791,8 @@ macro_rules! forward_all { add_sticker_to_set, set_sticker_position_in_set, delete_sticker_from_set, set_sticker_set_thumb, send_invoice, answer_shipping_query, answer_pre_checkout_query, set_passport_data_errors, send_game, - set_game_score, set_game_score_inline, get_game_high_scores => fwd_deref, fty + set_game_score, set_game_score_inline, get_game_high_scores, + get_updates_fault_tolerant => fwd_deref, fty } }; }