Class: Telegram::Bot::Api
- Inherits:
-
Object
- Object
- Telegram::Bot::Api
show all
- Defined in:
- lib/telegram/bot/api.rb
Constant Summary
collapse
- ENDPOINTS =
%w(
getUpdates setWebhook getMe sendMessage forwardMessage sendPhoto
sendAudio sendDocument sendSticker sendVideo sendVoice sendLocation
sendVenue sendContact sendChatAction getUserProfilePhotos getFile
kickChatMember unbanChatMember answerCallbackQuery editMessageText
editMessageCaption editMessageReplyMarkup answerInlineQuery getChat
leaveChat getChatAdministrators getChatMember getChatMembersCount
).freeze
- REPLY_MARKUP_TYPES =
[
Telegram::Bot::Types::ReplyKeyboardMarkup,
Telegram::Bot::Types::ReplyKeyboardHide,
Telegram::Bot::Types::ForceReply,
Telegram::Bot::Types::InlineKeyboardMarkup
].freeze
- INLINE_QUERY_RESULT_TYPES =
[
Telegram::Bot::Types::InlineQueryResultArticle,
Telegram::Bot::Types::InlineQueryResultPhoto,
Telegram::Bot::Types::InlineQueryResultGif,
Telegram::Bot::Types::InlineQueryResultMpeg4Gif,
Telegram::Bot::Types::InlineQueryResultVideo,
Telegram::Bot::Types::InlineQueryResultAudio,
Telegram::Bot::Types::InlineQueryResultVoice,
Telegram::Bot::Types::InlineQueryResultDocument,
Telegram::Bot::Types::InlineQueryResultLocation,
Telegram::Bot::Types::InlineQueryResultVenue,
Telegram::Bot::Types::InlineQueryResultContact,
Telegram::Bot::Types::InlineQueryResultCachedPhoto,
Telegram::Bot::Types::InlineQueryResultCachedGif,
Telegram::Bot::Types::InlineQueryResultCachedMpeg4Gif,
Telegram::Bot::Types::InlineQueryResultCachedSticker,
Telegram::Bot::Types::InlineQueryResultCachedDocument,
Telegram::Bot::Types::InlineQueryResultCachedVideo,
Telegram::Bot::Types::InlineQueryResultCachedVoice,
Telegram::Bot::Types::InlineQueryResultCachedAudio
].freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(token) ⇒ Api
42
43
44
|
# File 'lib/telegram/bot/api.rb', line 42
def initialize(token)
@token = token
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args, &block) ⇒ Object
46
47
48
49
50
51
|
# File 'lib/telegram/bot/api.rb', line 46
def method_missing(method_name, *args, &block)
endpoint = method_name.to_s
endpoint = camelize(endpoint) if endpoint.include?('_')
ENDPOINTS.include?(endpoint) ? call(endpoint, *args) : super
end
|
Instance Attribute Details
#token ⇒ Object
Returns the value of attribute token.
40
41
42
|
# File 'lib/telegram/bot/api.rb', line 40
def token
@token
end
|
Instance Method Details
#call(endpoint, raw_params = {}) ⇒ Object
60
61
62
63
64
65
66
67
68
69
|
# File 'lib/telegram/bot/api.rb', line 60
def call(endpoint, raw_params = {})
params = build_params(raw_params)
response = conn.post("/bot#{token}/#{endpoint}", params)
if response.status == 200
JSON.parse(response.body)
else
raise Exceptions::ResponseError.new(response),
'Telegram API has returned the error.'
end
end
|
#respond_to_missing?(*args) ⇒ Boolean
53
54
55
56
57
58
|
# File 'lib/telegram/bot/api.rb', line 53
def respond_to_missing?(*args)
method_name = args[0].to_s
method_name = camelize(method_name) if method_name.include?('_')
ENDPOINTS.include?(method_name) || super
end
|