Skip to content

Commit

Permalink
Bot API 8.0 - Gifts (#237)
Browse files Browse the repository at this point in the history
* Bot API 8.0 - Gifts

* fix clippy
  • Loading branch information
ayrat555 authored Dec 3, 2024
1 parent f8c8dff commit 9bded7b
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 7 deletions.
10 changes: 10 additions & 0 deletions src/api_params.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1230,6 +1230,16 @@ pub struct DeleteStickerSetParams {
pub name: String,
}

#[apply(apistruct!)]
#[derive(Eq)]
pub struct SendGiftParams {
pub user_id: u64,
pub gift_id: String,
pub text: Option<String>,
pub text_parse_mode: Option<ParseMode>,
pub text_entities: Option<Vec<MessageEntity>>,
}

#[apply(apistruct!)]
pub struct AnswerInlineQueryParams {
pub inline_query_id: String,
Expand Down
23 changes: 18 additions & 5 deletions src/objects.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1335,6 +1335,20 @@ pub struct InputSticker {
pub keywords: Option<Vec<String>>,
}

#[apply(apistruct!)]
pub struct Gift {
pub id: String,
pub stricker: Sticker,
pub star_count: u32,
pub total_count: Option<u32>,
pub remaining_count: Option<u32>,
}

#[apply(apistruct!)]
pub struct Gifts {
pub gifts: Vec<Gift>,
}

#[apply(apistruct!)]
#[derive(Eq)]
pub struct Story {
Expand Down Expand Up @@ -2238,23 +2252,24 @@ pub struct RevenueWithdrawalStateSucceeded {
#[derive(Eq)]
pub struct RevenueWithdrawalStateFailed {}

#[derive(Clone, Debug, Serialize, Deserialize, PartialEq, Eq)]
#[derive(Clone, Debug, Serialize, Deserialize, PartialEq)]
#[serde(tag = "type", rename_all = "snake_case")]
pub enum TransactionPartner {
User(TransactionPartnerUser),
User(Box<TransactionPartnerUser>),
Fragment(TransactionPartnerFragment),
TelegramAds(TransactionPartnerTelegramAds),
TelegramApi(TransactionPartnerTelegramApi),
Other(TransactionPartnerOther),
}

#[apply(apistruct!)]
#[derive(Eq)]
pub struct TransactionPartnerUser {
pub user: User,
pub invoice_payload: Option<String>,
pub subscription_period: Option<u32>,
pub paid_media: Option<Vec<PaidMedia>>,
pub paid_media_payload: Option<String>,
pub gift: Option<Gift>,
}

#[apply(apistruct!)]
Expand All @@ -2278,7 +2293,6 @@ pub struct TransactionPartnerTelegramApi {
pub struct TransactionPartnerOther {}

#[apply(apistruct!)]
#[derive(Eq)]
pub struct StarTransaction {
pub id: String,
pub amount: u32,
Expand All @@ -2288,7 +2302,6 @@ pub struct StarTransaction {
}

#[apply(apistruct!)]
#[derive(Eq)]
pub struct StarTransactions {
pub transactions: Vec<StarTransaction>,
}
Expand Down
4 changes: 3 additions & 1 deletion src/trait_async.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::api_params::{
use crate::objects::{
BotCommand, BotDescription, BotName, BotShortDescription, BusinessConnection,
ChatAdministratorRights, ChatFullInfo, ChatInviteLink, ChatMember, File as FileObject,
ForumTopic, GameHighScore, InputSticker, MenuButton, Message, MessageId, Poll,
ForumTopic, GameHighScore, Gifts, InputSticker, MenuButton, Message, MessageId, Poll,
PreparedInlineMessage, SentWebAppMessage, StarTransactions, Sticker, StickerSet, Update, User,
UserChatBoosts, UserProfilePhotos, WebhookInfo,
};
Expand Down Expand Up @@ -626,6 +626,8 @@ where

request!(setCustomEmojiStickerSetThumbnail, bool);
request!(deleteStickerSet, bool);
request_nb!(getAvailableGifts, Gifts);
request!(sendGift, bool);
request!(sendInvoice, Message);
request!(createInvoiceLink, String);
request!(answerShippingQuery, bool);
Expand Down
4 changes: 3 additions & 1 deletion src/trait_sync.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::api_params::{
use crate::objects::{
BotCommand, BotDescription, BotName, BotShortDescription, BusinessConnection,
ChatAdministratorRights, ChatFullInfo, ChatInviteLink, ChatMember, File as FileObject,
ForumTopic, GameHighScore, InputSticker, MenuButton, Message, MessageId, Poll,
ForumTopic, GameHighScore, Gifts, InputSticker, MenuButton, Message, MessageId, Poll,
PreparedInlineMessage, SentWebAppMessage, StarTransactions, Sticker, StickerSet, Update, User,
UserChatBoosts, UserProfilePhotos, WebhookInfo,
};
Expand Down Expand Up @@ -592,6 +592,8 @@ pub trait TelegramApi {

request!(setCustomEmojiStickerSetThumbnail, bool);
request!(deleteStickerSet, bool);
request_nb!(getAvailableGifts, Gifts);
request!(sendGift, bool);
request!(sendInvoice, Message);
request!(createInvoiceLink, String);
request!(answerShippingQuery, bool);
Expand Down

0 comments on commit 9bded7b

Please sign in to comment.