class YandexDirect::V5::Request
Constants
- BASE_URL
- SANDBOX_BASE_URL
Public Class Methods
new(client, token, service_name, method, params)
click to toggle source
# File lib/yandex_direct/v5/request.rb, line 9 def initialize(client, token, service_name, method, params) @payload = { method: method, params: params } api_url = client.test ? SANDBOX_BASE_URL : BASE_URL @url = "#{api_url}#{service_name}" @token = token end
Public Instance Methods
perform()
click to toggle source
# File lib/yandex_direct/v5/request.rb, line 16 def perform response = HTTP.auth("Bearer #{@token}").headers('Accept-Language': 'ru').post(@url, json: @payload) response_body = response.parse raise(YandexDirect::NotEnoughUnitsError) if response_body.key?('error') && response_body['error']['error_code'].to_i == 152 raise(YandexDirect::Error, "[#{response_body['error']['error_code']}] #{response_body['error']['error_string']}: #{response_body['error']['error_detail']}") if response_body.key?('error') { result: response_body['result'], available_units: response['Units'].split('/')[1] } end