class Ecommerce::Request

Attributes

args[R]

Public Class Methods

new(args) click to toggle source
# File lib/ecommerce/request.rb, line 4
def initialize(args)
  @args = args
end

Public Instance Methods

run() click to toggle source
# File lib/ecommerce/request.rb, line 8
def run
  request.run
  request.response
end

Private Instance Methods

body() click to toggle source
# File lib/ecommerce/request.rb, line 42
def body
  body = args[:body]
  body = MultiJson.dump(body) if body.is_a?(Hash)
  body
end
headers() click to toggle source
# File lib/ecommerce/request.rb, line 31
def headers
  headers = args.fetch(:headers) { {} }

  {
    "Accept"         => "application/json",
    "Content-Type"   => "application/json",
    "User-Agent"     => args[:user_agent],
    "Authorization" => "Basic #{args[:authorization_hash]}"
  }.merge(headers)
end
options() click to toggle source
# File lib/ecommerce/request.rb, line 21
def options
  {
    method:           args[:method],
    params:           args[:params],
    body:             body,
    headers:          headers,
    accept_encoding:  "gzip"
  }.reject {|k,v| v.nil?}
end
request() click to toggle source
# File lib/ecommerce/request.rb, line 17
def request
  @request ||= Typhoeus::Request.new(args[:url], options)
end