Class: Ya::API::Direct::Gateway
- Inherits:
-
Object
- Object
- Ya::API::Direct::Gateway
- Defined in:
- lib/ya/api/direct/gateway.rb
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
Instance Method Summary collapse
- #generate_body(method, params, ver) ⇒ Object
- #generate_header(ver) ⇒ Object
-
#initialize(config) ⇒ Gateway
constructor
A new instance of Gateway.
- #request(method, params, service = "", version = nil) ⇒ Object
Constructor Details
#initialize(config) ⇒ Gateway
Returns a new instance of Gateway.
11 12 13 |
# File 'lib/ya/api/direct/gateway.rb', line 11 def initialize(config) @config = config end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
10 11 12 |
# File 'lib/ya/api/direct/gateway.rb', line 10 def config @config end |
Instance Method Details
#generate_body(method, params, ver) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/ya/api/direct/gateway.rb', line 45 def generate_body(method, params, ver) body = { "method" => method, "params" => params } if [:v4, :v4live].include? ver body.merge!({ "locale" => @config[:locale], "token" => @config[:token] }) end body end |
#generate_header(ver) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/ya/api/direct/gateway.rb', line 34 def generate_header(ver) header = {} if ver == :v5 header.merge!({ 'Client-Login' => @config[:login], 'Accept-Language' => @config[:locale], 'Authorization' => "Bearer %{token}" % @config }) end end |
#request(method, params, service = "", version = nil) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# 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 else raise response.inspect end end |