class Ya::API::Direct::Gateway
Attributes
config[R]
Public Class Methods
new(config)
click to toggle source
# File lib/ya/api/direct/gateway.rb, line 11 def initialize(config) @config = config end
Public Instance Methods
generate_body(method, params, ver)
click to toggle source
# File lib/ya/api/direct/gateway.rb, line 45 def generate_body(method, params, ver) params_key = [:v4, :v4live].include?(ver) ? 'param' : 'params' body = { 'method' => method, params_key => params } if [:v4, :v4live].include? ver body.merge!({ "locale" => @config[:locale], "token" => @config[:token] }) end body end
generate_header(ver)
click to toggle source
# File lib/ya/api/direct/gateway.rb, line 34 def generate_header(ver) header = {} if [:v5].include? ver header.merge!({ 'Client-Login' => @config[:login], 'Accept-Language' => @config[:locale], 'Authorization' => "Bearer %{token}" % @config }) end end
request(method, params, service = "", version = nil)
click to toggle source
# File lib/ya/api/direct/gateway.rb, line 15 def request(method, params, service = "", version = nil) ver = version || (service.nil? ? :v4 : :v5) url = UrlHelper.direct_api_url @config[:mode], ver, service header = generate_header ver body = generate_body method, params, ver uri = URI.parse url request = Net::HTTP::Post.new(uri.path, initheader = header) request.body = body.to_json http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = @config[:ssl] ? OpenSSL::SSL::VERIFY_PEER : OpenSSL::SSL::VERIFY_NONE response = http.request(request) if response.kind_of? Net::HTTPSuccess UrlHelper.parse_data response, ver else raise response.inspect end end