lib/telegram/bot/exceptions/response_error.rb
# frozen_string_literal: true
module Telegram
module Bot
module Exceptions
class ResponseError < Base
attr_reader :response
def initialize(response:)
@response = response
super "Telegram API has returned the error. (#{data.map { |k, v| %(#{k}: #{v.inspect}) }.join(', ')})"
end
def error_code
data[:error_code] || data['error_code']
end
def data
@data ||= begin
JSON.parse(response.body)
rescue JSON::ParserError
{ error_code: response.status, uri: response.env.url.to_s }
end
end
end
end
end
end