telegram-bot-ruby 1.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +10 -0
  3. data/.github/workflows/ci.yml +0 -3
  4. data/.github/workflows/stale.yml +19 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +1 -0
  7. data/.rubocop.yml +12 -7
  8. data/CHANGELOG.md +16 -0
  9. data/Gemfile +11 -3
  10. data/LICENSE +0 -1
  11. data/README.md +64 -20
  12. data/Rakefile +0 -43
  13. data/bin/console +4 -1
  14. data/lib/telegram/bot/api/endpoints.rb +124 -0
  15. data/lib/telegram/bot/api.rb +20 -44
  16. data/lib/telegram/bot/client.rb +9 -10
  17. data/lib/telegram/bot/exceptions/response_error.rb +2 -8
  18. data/lib/telegram/bot/types/animation.rb +1 -1
  19. data/lib/telegram/bot/types/audio.rb +1 -1
  20. data/lib/telegram/bot/types/background_fill.rb +16 -0
  21. data/lib/telegram/bot/types/background_fill_freeform_gradient.rb +12 -0
  22. data/lib/telegram/bot/types/background_fill_gradient.rb +14 -0
  23. data/lib/telegram/bot/types/background_fill_solid.rb +12 -0
  24. data/lib/telegram/bot/types/background_type.rb +17 -0
  25. data/lib/telegram/bot/types/background_type_chat_theme.rb +12 -0
  26. data/lib/telegram/bot/types/background_type_fill.rb +13 -0
  27. data/lib/telegram/bot/types/background_type_pattern.rb +16 -0
  28. data/lib/telegram/bot/types/background_type_wallpaper.rb +15 -0
  29. data/lib/telegram/bot/types/birthdate.rb +13 -0
  30. data/lib/telegram/bot/types/bot_command.rb +2 -2
  31. data/lib/telegram/bot/types/bot_command_scope.rb +20 -0
  32. data/lib/telegram/bot/types/bot_command_scope_all_chat_administrators.rb +1 -1
  33. data/lib/telegram/bot/types/bot_command_scope_all_group_chats.rb +1 -1
  34. data/lib/telegram/bot/types/bot_command_scope_all_private_chats.rb +1 -1
  35. data/lib/telegram/bot/types/bot_command_scope_chat.rb +2 -2
  36. data/lib/telegram/bot/types/bot_command_scope_chat_administrators.rb +2 -2
  37. data/lib/telegram/bot/types/bot_command_scope_chat_member.rb +2 -2
  38. data/lib/telegram/bot/types/bot_command_scope_default.rb +1 -1
  39. data/lib/telegram/bot/types/bot_description.rb +11 -0
  40. data/lib/telegram/bot/types/bot_name.rb +11 -0
  41. data/lib/telegram/bot/types/bot_short_description.rb +11 -0
  42. data/lib/telegram/bot/types/business_connection.rb +16 -0
  43. data/lib/telegram/bot/types/business_intro.rb +13 -0
  44. data/lib/telegram/bot/types/business_location.rb +12 -0
  45. data/lib/telegram/bot/types/business_messages_deleted.rb +13 -0
  46. data/lib/telegram/bot/types/business_opening_hours.rb +12 -0
  47. data/lib/telegram/bot/types/business_opening_hours_interval.rb +12 -0
  48. data/lib/telegram/bot/types/callback_query.rb +1 -1
  49. data/lib/telegram/bot/types/chat.rb +1 -22
  50. data/lib/telegram/bot/types/chat_administrator_rights.rb +3 -0
  51. data/lib/telegram/bot/types/chat_background.rb +11 -0
  52. data/lib/telegram/bot/types/chat_boost.rb +14 -0
  53. data/lib/telegram/bot/types/chat_boost_added.rb +11 -0
  54. data/lib/telegram/bot/types/chat_boost_removed.rb +14 -0
  55. data/lib/telegram/bot/types/chat_boost_source.rb +16 -0
  56. data/lib/telegram/bot/types/chat_boost_source_gift_code.rb +12 -0
  57. data/lib/telegram/bot/types/chat_boost_source_giveaway.rb +15 -0
  58. data/lib/telegram/bot/types/chat_boost_source_premium.rb +12 -0
  59. data/lib/telegram/bot/types/chat_boost_updated.rb +12 -0
  60. data/lib/telegram/bot/types/chat_full_info.rb +54 -0
  61. data/lib/telegram/bot/types/chat_invite_link.rb +2 -0
  62. data/lib/telegram/bot/types/chat_location.rb +1 -1
  63. data/lib/telegram/bot/types/chat_member.rb +11 -2
  64. data/lib/telegram/bot/types/chat_member_administrator.rb +8 -5
  65. data/lib/telegram/bot/types/chat_member_banned.rb +2 -2
  66. data/lib/telegram/bot/types/chat_member_left.rb +2 -2
  67. data/lib/telegram/bot/types/chat_member_member.rb +3 -2
  68. data/lib/telegram/bot/types/chat_member_owner.rb +2 -2
  69. data/lib/telegram/bot/types/chat_member_restricted.rb +2 -2
  70. data/lib/telegram/bot/types/chat_member_updated.rb +2 -0
  71. data/lib/telegram/bot/types/chat_shared.rb +3 -0
  72. data/lib/telegram/bot/types/compactable.rb +2 -7
  73. data/lib/telegram/bot/types/copy_text_button.rb +11 -0
  74. data/lib/telegram/bot/types/document.rb +1 -1
  75. data/lib/telegram/bot/types/error.rb +14 -0
  76. data/lib/telegram/bot/types/external_reply_info.rb +34 -0
  77. data/lib/telegram/bot/types/force_reply.rb +3 -3
  78. data/lib/telegram/bot/types/gift.rb +15 -0
  79. data/lib/telegram/bot/types/gifts.rb +11 -0
  80. data/lib/telegram/bot/types/giveaway.rb +19 -0
  81. data/lib/telegram/bot/types/giveaway_completed.rb +14 -0
  82. data/lib/telegram/bot/types/giveaway_created.rb +11 -0
  83. data/lib/telegram/bot/types/giveaway_winners.rb +22 -0
  84. data/lib/telegram/bot/types/inaccessible_message.rb +13 -0
  85. data/lib/telegram/bot/types/inline_keyboard_button.rb +2 -0
  86. data/lib/telegram/bot/types/inline_query_result.rb +33 -0
  87. data/lib/telegram/bot/types/inline_query_result_article.rb +4 -4
  88. data/lib/telegram/bot/types/inline_query_result_audio.rb +1 -1
  89. data/lib/telegram/bot/types/inline_query_result_cached_audio.rb +1 -1
  90. data/lib/telegram/bot/types/inline_query_result_cached_document.rb +1 -1
  91. data/lib/telegram/bot/types/inline_query_result_cached_gif.rb +2 -1
  92. data/lib/telegram/bot/types/inline_query_result_cached_mpeg4_gif.rb +2 -1
  93. data/lib/telegram/bot/types/inline_query_result_cached_photo.rb +2 -1
  94. data/lib/telegram/bot/types/inline_query_result_cached_sticker.rb +1 -1
  95. data/lib/telegram/bot/types/inline_query_result_cached_video.rb +2 -1
  96. data/lib/telegram/bot/types/inline_query_result_cached_voice.rb +1 -1
  97. data/lib/telegram/bot/types/inline_query_result_contact.rb +4 -4
  98. data/lib/telegram/bot/types/inline_query_result_document.rb +4 -4
  99. data/lib/telegram/bot/types/inline_query_result_game.rb +1 -1
  100. data/lib/telegram/bot/types/inline_query_result_gif.rb +4 -3
  101. data/lib/telegram/bot/types/inline_query_result_location.rb +4 -4
  102. data/lib/telegram/bot/types/inline_query_result_mpeg4_gif.rb +4 -3
  103. data/lib/telegram/bot/types/inline_query_result_photo.rb +3 -2
  104. data/lib/telegram/bot/types/inline_query_result_venue.rb +4 -4
  105. data/lib/telegram/bot/types/inline_query_result_video.rb +3 -2
  106. data/lib/telegram/bot/types/inline_query_result_voice.rb +1 -1
  107. data/lib/telegram/bot/types/inline_query_results_button.rb +13 -0
  108. data/lib/telegram/bot/types/input_contact_message_content.rb +1 -1
  109. data/lib/telegram/bot/types/input_invoice_message_content.rb +5 -5
  110. data/lib/telegram/bot/types/input_location_message_content.rb +1 -1
  111. data/lib/telegram/bot/types/input_media.rb +18 -0
  112. data/lib/telegram/bot/types/input_media_animation.rb +3 -2
  113. data/lib/telegram/bot/types/input_media_audio.rb +2 -2
  114. data/lib/telegram/bot/types/input_media_document.rb +2 -2
  115. data/lib/telegram/bot/types/input_media_photo.rb +2 -1
  116. data/lib/telegram/bot/types/input_media_video.rb +3 -2
  117. data/lib/telegram/bot/types/input_message_content.rb +10 -2
  118. data/lib/telegram/bot/types/input_paid_media.rb +15 -0
  119. data/lib/telegram/bot/types/input_paid_media_photo.rb +12 -0
  120. data/lib/telegram/bot/types/input_paid_media_video.rb +17 -0
  121. data/lib/telegram/bot/types/input_poll_option.rb +13 -0
  122. data/lib/telegram/bot/types/input_sticker.rb +15 -0
  123. data/lib/telegram/bot/types/input_text_message_content.rb +3 -3
  124. data/lib/telegram/bot/types/input_venue_message_content.rb +1 -1
  125. data/lib/telegram/bot/types/keyboard_button.rb +1 -1
  126. data/lib/telegram/bot/types/keyboard_button_request_chat.rb +3 -0
  127. data/lib/telegram/bot/types/keyboard_button_request_users.rb +17 -0
  128. data/lib/telegram/bot/types/link_preview_options.rb +15 -0
  129. data/lib/telegram/bot/types/location.rb +1 -1
  130. data/lib/telegram/bot/types/maybe_inaccessible_message.rb +15 -0
  131. data/lib/telegram/bot/types/menu_button.rb +16 -0
  132. data/lib/telegram/bot/types/menu_button_commands.rb +1 -1
  133. data/lib/telegram/bot/types/menu_button_default.rb +1 -1
  134. data/lib/telegram/bot/types/menu_button_web_app.rb +1 -1
  135. data/lib/telegram/bot/types/message.rb +30 -16
  136. data/lib/telegram/bot/types/message_id.rb +11 -0
  137. data/lib/telegram/bot/types/message_origin.rb +17 -0
  138. data/lib/telegram/bot/types/message_origin_channel.rb +15 -0
  139. data/lib/telegram/bot/types/message_origin_chat.rb +14 -0
  140. data/lib/telegram/bot/types/message_origin_hidden_user.rb +13 -0
  141. data/lib/telegram/bot/types/message_origin_user.rb +13 -0
  142. data/lib/telegram/bot/types/message_reaction_count_updated.rb +14 -0
  143. data/lib/telegram/bot/types/message_reaction_updated.rb +17 -0
  144. data/lib/telegram/bot/types/paid_media.rb +16 -0
  145. data/lib/telegram/bot/types/paid_media_info.rb +12 -0
  146. data/lib/telegram/bot/types/paid_media_photo.rb +12 -0
  147. data/lib/telegram/bot/types/paid_media_preview.rb +14 -0
  148. data/lib/telegram/bot/types/paid_media_purchased.rb +12 -0
  149. data/lib/telegram/bot/types/paid_media_video.rb +12 -0
  150. data/lib/telegram/bot/types/passport_element_error.rb +22 -0
  151. data/lib/telegram/bot/types/passport_element_error_data_field.rb +1 -1
  152. data/lib/telegram/bot/types/passport_element_error_file.rb +1 -1
  153. data/lib/telegram/bot/types/passport_element_error_files.rb +2 -2
  154. data/lib/telegram/bot/types/passport_element_error_front_side.rb +1 -1
  155. data/lib/telegram/bot/types/passport_element_error_reverse_side.rb +1 -1
  156. data/lib/telegram/bot/types/passport_element_error_selfie.rb +1 -1
  157. data/lib/telegram/bot/types/passport_element_error_translation_file.rb +1 -1
  158. data/lib/telegram/bot/types/passport_element_error_translation_files.rb +2 -2
  159. data/lib/telegram/bot/types/passport_element_error_unspecified.rb +1 -1
  160. data/lib/telegram/bot/types/poll.rb +2 -1
  161. data/lib/telegram/bot/types/poll_answer.rb +2 -1
  162. data/lib/telegram/bot/types/poll_option.rb +2 -1
  163. data/lib/telegram/bot/types/prepared_inline_message.rb +12 -0
  164. data/lib/telegram/bot/types/reaction_count.rb +12 -0
  165. data/lib/telegram/bot/types/reaction_type.rb +16 -0
  166. data/lib/telegram/bot/types/reaction_type_custom_emoji.rb +12 -0
  167. data/lib/telegram/bot/types/reaction_type_emoji.rb +12 -0
  168. data/lib/telegram/bot/types/reaction_type_paid.rb +11 -0
  169. data/lib/telegram/bot/types/refunded_payment.rb +15 -0
  170. data/lib/telegram/bot/types/reply_keyboard_markup.rb +2 -2
  171. data/lib/telegram/bot/types/reply_keyboard_remove.rb +2 -2
  172. data/lib/telegram/bot/types/reply_parameters.rb +17 -0
  173. data/lib/telegram/bot/types/response_parameters.rb +12 -0
  174. data/lib/telegram/bot/types/revenue_withdrawal_state.rb +16 -0
  175. data/lib/telegram/bot/types/revenue_withdrawal_state_failed.rb +11 -0
  176. data/lib/telegram/bot/types/revenue_withdrawal_state_pending.rb +11 -0
  177. data/lib/telegram/bot/types/revenue_withdrawal_state_succeeded.rb +13 -0
  178. data/lib/telegram/bot/types/shared_user.rb +15 -0
  179. data/lib/telegram/bot/types/star_transaction.rb +15 -0
  180. data/lib/telegram/bot/types/star_transactions.rb +11 -0
  181. data/lib/telegram/bot/types/sticker.rb +2 -1
  182. data/lib/telegram/bot/types/sticker_set.rb +1 -3
  183. data/lib/telegram/bot/types/story.rb +12 -0
  184. data/lib/telegram/bot/types/successful_payment.rb +3 -0
  185. data/lib/telegram/bot/types/switch_inline_query_chosen_chat.rb +15 -0
  186. data/lib/telegram/bot/types/text_quote.rb +14 -0
  187. data/lib/telegram/bot/types/transaction_partner.rb +18 -0
  188. data/lib/telegram/bot/types/transaction_partner_fragment.rb +12 -0
  189. data/lib/telegram/bot/types/transaction_partner_other.rb +11 -0
  190. data/lib/telegram/bot/types/transaction_partner_telegram_ads.rb +11 -0
  191. data/lib/telegram/bot/types/transaction_partner_telegram_api.rb +12 -0
  192. data/lib/telegram/bot/types/transaction_partner_user.rb +17 -0
  193. data/lib/telegram/bot/types/update.rb +9 -0
  194. data/lib/telegram/bot/types/user.rb +4 -2
  195. data/lib/telegram/bot/types/user_chat_boosts.rb +11 -0
  196. data/lib/telegram/bot/types/{user_shared.rb → users_shared.rb} +2 -2
  197. data/lib/telegram/bot/types/video.rb +1 -1
  198. data/lib/telegram/bot/types/video_note.rb +1 -1
  199. data/lib/telegram/bot/types/webhook_info.rb +1 -1
  200. data/lib/telegram/bot/types/write_access_allowed.rb +3 -0
  201. data/lib/telegram/bot/version.rb +1 -1
  202. data/lib/telegram/bot.rb +1 -0
  203. data/rakelib/parse_schema.rake +73 -0
  204. data/rakelib/rebuild_types.rake +90 -0
  205. data/telegram-bot-ruby.gemspec +1 -4
  206. data/utility/empty_type.erb +14 -0
  207. data/utility/type.erb +13 -0
  208. data/utility/type_attributes.json +5138 -0
  209. metadata +105 -5
  210. data/lib/telegram/bot/types/keyboard_button_request_user.rb +0 -13
@@ -9,7 +9,7 @@ module Telegram
9
9
  attribute :width, Types::Integer
10
10
  attribute :height, Types::Integer
11
11
  attribute :duration, Types::Integer
12
- attribute? :thumb, PhotoSize
12
+ attribute? :thumbnail, PhotoSize
13
13
  attribute? :file_name, Types::String
14
14
  attribute? :mime_type, Types::String
15
15
  attribute? :file_size, Types::Integer
@@ -12,7 +12,7 @@ module Telegram
12
12
  attribute? :file_name, Types::String
13
13
  attribute? :mime_type, Types::String
14
14
  attribute? :file_size, Types::Integer
15
- attribute? :thumb, PhotoSize
15
+ attribute? :thumbnail, PhotoSize
16
16
  end
17
17
  end
18
18
  end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ ## Just for classes consistency
7
+ # rubocop:disable Naming/ConstantName
8
+ BackgroundFill = (
9
+ BackgroundFillSolid |
10
+ BackgroundFillGradient |
11
+ BackgroundFillFreeformGradient
12
+ )
13
+ # rubocop:enable Naming/ConstantName
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BackgroundFillFreeformGradient < Base
7
+ attribute :type, Types::String.constrained(eql: 'freeform_gradient').default('freeform_gradient')
8
+ attribute :colors, Types::Array.of(Types::Integer)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BackgroundFillGradient < Base
7
+ attribute :type, Types::String.constrained(eql: 'gradient').default('gradient')
8
+ attribute :top_color, Types::Integer
9
+ attribute :bottom_color, Types::Integer
10
+ attribute :rotation_angle, Types::Integer
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BackgroundFillSolid < Base
7
+ attribute :type, Types::String.constrained(eql: 'solid').default('solid')
8
+ attribute :color, Types::Integer
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ ## Just for classes consistency
7
+ # rubocop:disable Naming/ConstantName
8
+ BackgroundType = (
9
+ BackgroundTypeFill |
10
+ BackgroundTypeWallpaper |
11
+ BackgroundTypePattern |
12
+ BackgroundTypeChatTheme
13
+ )
14
+ # rubocop:enable Naming/ConstantName
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BackgroundTypeChatTheme < Base
7
+ attribute :type, Types::String.constrained(eql: 'chat_theme').default('chat_theme')
8
+ attribute :theme_name, Types::String
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BackgroundTypeFill < Base
7
+ attribute :type, Types::String.constrained(eql: 'fill').default('fill')
8
+ attribute :fill, BackgroundFill
9
+ attribute :dark_theme_dimming, Types::Integer
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BackgroundTypePattern < Base
7
+ attribute :type, Types::String.constrained(eql: 'pattern').default('pattern')
8
+ attribute :document, Document
9
+ attribute :fill, BackgroundFill
10
+ attribute :intensity, Types::Integer
11
+ attribute? :is_inverted, Types::True
12
+ attribute? :is_moving, Types::True
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BackgroundTypeWallpaper < Base
7
+ attribute :type, Types::String.constrained(eql: 'wallpaper').default('wallpaper')
8
+ attribute :document, Document
9
+ attribute :dark_theme_dimming, Types::Integer
10
+ attribute? :is_blurred, Types::True
11
+ attribute? :is_moving, Types::True
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class Birthdate < Base
7
+ attribute :day, Types::Integer
8
+ attribute :month, Types::Integer
9
+ attribute? :year, Types::Integer
10
+ end
11
+ end
12
+ end
13
+ end
@@ -4,8 +4,8 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommand < Base
7
- attribute :command, Types::String
8
- attribute :description, Types::String
7
+ attribute :command, Types::String.constrained(min_size: 1, max_size: 32)
8
+ attribute :description, Types::String.constrained(min_size: 1, max_size: 256)
9
9
  end
10
10
  end
11
11
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ ## Just for classes consistency
7
+ # rubocop:disable Naming/ConstantName
8
+ BotCommandScope = (
9
+ BotCommandScopeDefault |
10
+ BotCommandScopeAllPrivateChats |
11
+ BotCommandScopeAllGroupChats |
12
+ BotCommandScopeAllChatAdministrators |
13
+ BotCommandScopeChat |
14
+ BotCommandScopeChatAdministrators |
15
+ BotCommandScopeChatMember
16
+ )
17
+ # rubocop:enable Naming/ConstantName
18
+ end
19
+ end
20
+ end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommandScopeAllChatAdministrators < Base
7
- attribute :type, Types::String.default('all_chat_administrators')
7
+ attribute :type, Types::String.constrained(eql: 'all_chat_administrators').default('all_chat_administrators')
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommandScopeAllGroupChats < Base
7
- attribute :type, Types::String.default('all_group_chats')
7
+ attribute :type, Types::String.constrained(eql: 'all_group_chats').default('all_group_chats')
8
8
  end
9
9
  end
10
10
  end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommandScopeAllPrivateChats < Base
7
- attribute :type, Types::String.default('all_private_chats')
7
+ attribute :type, Types::String.constrained(eql: 'all_private_chats').default('all_private_chats')
8
8
  end
9
9
  end
10
10
  end
@@ -4,8 +4,8 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommandScopeChat < Base
7
- attribute :type, Types::String.default('chat')
8
- attribute :chat_id, Types::String
7
+ attribute :type, Types::String.constrained(eql: 'chat').default('chat')
8
+ attribute :chat_id, Types::Integer | Types::String
9
9
  end
10
10
  end
11
11
  end
@@ -4,8 +4,8 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommandScopeChatAdministrators < Base
7
- attribute :type, Types::String.default('chat_administrators')
8
- attribute :chat_id, Types::String
7
+ attribute :type, Types::String.constrained(eql: 'chat_administrators').default('chat_administrators')
8
+ attribute :chat_id, Types::Integer | Types::String
9
9
  end
10
10
  end
11
11
  end
@@ -4,8 +4,8 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommandScopeChatMember < Base
7
- attribute :type, Types::String.default('chat_member')
8
- attribute :chat_id, Types::String
7
+ attribute :type, Types::String.constrained(eql: 'chat_member').default('chat_member')
8
+ attribute :chat_id, Types::Integer | Types::String
9
9
  attribute :user_id, Types::Integer
10
10
  end
11
11
  end
@@ -4,7 +4,7 @@ module Telegram
4
4
  module Bot
5
5
  module Types
6
6
  class BotCommandScopeDefault < Base
7
- attribute :type, Types::String.default('default')
7
+ attribute :type, Types::String.constrained(eql: 'default').default('default')
8
8
  end
9
9
  end
10
10
  end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BotDescription < Base
7
+ attribute :description, Types::String
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BotName < Base
7
+ attribute :name, Types::String
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BotShortDescription < Base
7
+ attribute :short_description, Types::String
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BusinessConnection < Base
7
+ attribute :id, Types::String
8
+ attribute :user, User
9
+ attribute :user_chat_id, Types::Integer
10
+ attribute :date, Types::Integer
11
+ attribute :can_reply, Types::Bool
12
+ attribute :is_enabled, Types::Bool
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BusinessIntro < Base
7
+ attribute? :title, Types::String
8
+ attribute? :message, Types::String
9
+ attribute? :sticker, Sticker
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BusinessLocation < Base
7
+ attribute :address, Types::String
8
+ attribute? :location, Location
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BusinessMessagesDeleted < Base
7
+ attribute :business_connection_id, Types::String
8
+ attribute :chat, Chat
9
+ attribute :message_ids, Types::Array.of(Types::Integer)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BusinessOpeningHours < Base
7
+ attribute :time_zone_name, Types::String
8
+ attribute :opening_hours, Types::Array.of(BusinessOpeningHoursInterval)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class BusinessOpeningHoursInterval < Base
7
+ attribute :opening_minute, Types::Integer
8
+ attribute :closing_minute, Types::Integer
9
+ end
10
+ end
11
+ end
12
+ end
@@ -6,7 +6,7 @@ module Telegram
6
6
  class CallbackQuery < Base
7
7
  attribute :id, Types::String
8
8
  attribute :from, User
9
- attribute? :message, Message
9
+ attribute? :message, MaybeInaccessibleMessage
10
10
  attribute? :inline_message_id, Types::String
11
11
  attribute :chat_instance, Types::String
12
12
  attribute? :data, Types::String
@@ -10,28 +10,7 @@ module Telegram
10
10
  attribute? :username, Types::String
11
11
  attribute? :first_name, Types::String
12
12
  attribute? :last_name, Types::String
13
- attribute? :is_forum, Types::Bool
14
- attribute? :photo, ChatPhoto
15
- attribute? :active_usernames, Types::Array.of(Types::String)
16
- attribute? :emoji_status_custom_emoji_id, Types::String
17
- attribute? :bio, Types::String
18
- attribute? :has_private_forwards, Types::Bool
19
- attribute? :has_restricted_voice_and_video_messages, Types::Bool
20
- attribute? :join_to_send_messages, Types::Bool
21
- attribute? :join_by_request, Types::Bool
22
- attribute? :description, Types::String
23
- attribute? :invite_link, Types::String
24
- attribute? :pinned_message, Message
25
- attribute? :permissions, ChatPermissions
26
- attribute? :slow_mode_delay, Types::Integer
27
- attribute? :message_auto_delete_time, Types::Integer
28
- attribute? :has_aggressive_anti_spam_enabled, Types::Bool
29
- attribute? :has_hidden_members, Types::Bool
30
- attribute? :has_protected_content, Types::Bool
31
- attribute? :sticker_set_name, Types::String
32
- attribute? :can_set_sticker_set, Types::Bool
33
- attribute? :linked_chat_id, Types::Integer
34
- attribute? :location, ChatLocation
13
+ attribute? :is_forum, Types::True
35
14
  end
36
15
  end
37
16
  end
@@ -12,6 +12,9 @@ module Telegram
12
12
  attribute :can_promote_members, Types::Bool
13
13
  attribute :can_change_info, Types::Bool
14
14
  attribute :can_invite_users, Types::Bool
15
+ attribute :can_post_stories, Types::Bool
16
+ attribute :can_edit_stories, Types::Bool
17
+ attribute :can_delete_stories, Types::Bool
15
18
  attribute? :can_post_messages, Types::Bool
16
19
  attribute? :can_edit_messages, Types::Bool
17
20
  attribute? :can_pin_messages, Types::Bool
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBackground < Base
7
+ attribute :type, BackgroundType
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBoost < Base
7
+ attribute :boost_id, Types::String
8
+ attribute :add_date, Types::Integer
9
+ attribute :expiration_date, Types::Integer
10
+ attribute :source, ChatBoostSource
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBoostAdded < Base
7
+ attribute :boost_count, Types::Integer
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBoostRemoved < Base
7
+ attribute :chat, Chat
8
+ attribute :boost_id, Types::String
9
+ attribute :remove_date, Types::Integer
10
+ attribute :source, ChatBoostSource
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ ## Just for classes consistency
7
+ # rubocop:disable Naming/ConstantName
8
+ ChatBoostSource = (
9
+ ChatBoostSourcePremium |
10
+ ChatBoostSourceGiftCode |
11
+ ChatBoostSourceGiveaway
12
+ )
13
+ # rubocop:enable Naming/ConstantName
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBoostSourceGiftCode < Base
7
+ attribute :source, Types::String.constrained(eql: 'gift_code').default('gift_code')
8
+ attribute :user, User
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBoostSourceGiveaway < Base
7
+ attribute :source, Types::String.constrained(eql: 'giveaway').default('giveaway')
8
+ attribute :giveaway_message_id, Types::Integer
9
+ attribute? :user, User
10
+ attribute? :prize_star_count, Types::Integer
11
+ attribute? :is_unclaimed, Types::True
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBoostSourcePremium < Base
7
+ attribute :source, Types::String.constrained(eql: 'premium').default('premium')
8
+ attribute :user, User
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatBoostUpdated < Base
7
+ attribute :chat, Chat
8
+ attribute :boost, ChatBoost
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telegram
4
+ module Bot
5
+ module Types
6
+ class ChatFullInfo < Base
7
+ attribute :id, Types::Integer
8
+ attribute :type, Types::String
9
+ attribute? :title, Types::String
10
+ attribute? :username, Types::String
11
+ attribute? :first_name, Types::String
12
+ attribute? :last_name, Types::String
13
+ attribute? :is_forum, Types::True
14
+ attribute :accent_color_id, Types::Integer
15
+ attribute :max_reaction_count, Types::Integer
16
+ attribute? :photo, ChatPhoto
17
+ attribute? :active_usernames, Types::Array.of(Types::String)
18
+ attribute? :birthdate, Birthdate
19
+ attribute? :business_intro, BusinessIntro
20
+ attribute? :business_location, BusinessLocation
21
+ attribute? :business_opening_hours, BusinessOpeningHours
22
+ attribute? :personal_chat, Chat
23
+ attribute? :available_reactions, Types::Array.of(ReactionType)
24
+ attribute? :background_custom_emoji_id, Types::String
25
+ attribute? :profile_accent_color_id, Types::Integer
26
+ attribute? :profile_background_custom_emoji_id, Types::String
27
+ attribute? :emoji_status_custom_emoji_id, Types::String
28
+ attribute? :emoji_status_expiration_date, Types::Integer
29
+ attribute? :bio, Types::String
30
+ attribute? :has_private_forwards, Types::True
31
+ attribute? :has_restricted_voice_and_video_messages, Types::True
32
+ attribute? :join_to_send_messages, Types::True
33
+ attribute? :join_by_request, Types::True
34
+ attribute? :description, Types::String
35
+ attribute? :invite_link, Types::String
36
+ attribute? :pinned_message, Message
37
+ attribute? :permissions, ChatPermissions
38
+ attribute? :can_send_paid_media, Types::True
39
+ attribute? :slow_mode_delay, Types::Integer
40
+ attribute? :unrestrict_boost_count, Types::Integer
41
+ attribute? :message_auto_delete_time, Types::Integer
42
+ attribute? :has_aggressive_anti_spam_enabled, Types::True
43
+ attribute? :has_hidden_members, Types::True
44
+ attribute? :has_protected_content, Types::True
45
+ attribute? :has_visible_history, Types::True
46
+ attribute? :sticker_set_name, Types::String
47
+ attribute? :can_set_sticker_set, Types::True
48
+ attribute? :custom_emoji_sticker_set_name, Types::String
49
+ attribute? :linked_chat_id, Types::Integer
50
+ attribute? :location, ChatLocation
51
+ end
52
+ end
53
+ end
54
+ end
@@ -13,6 +13,8 @@ module Telegram
13
13
  attribute? :expire_date, Types::Integer
14
14
  attribute? :member_limit, Types::Integer
15
15
  attribute? :pending_join_request_count, Types::Integer
16
+ attribute? :subscription_period, Types::Integer
17
+ attribute? :subscription_price, Types::Integer
16
18
  end
17
19
  end
18
20
  end