class MWS::Request

Constants

DEFAULT_METHOD

Public Class Methods

new(args) click to toggle source
# File lib/mws/request.rb, line 10
def initialize(args)
  @method   = args[:method] || DEFAULT_METHOD
  @path     = args[:path]
  @endpoint = args[:endpoint]
  @headers  = args[:headers] || {}
  @body     = args[:body] || ""
end

Public Instance Methods

execute() click to toggle source
# File lib/mws/request.rb, line 18
def execute
  client = Net::HTTP.new(@endpoint, 443)
  client.use_ssl = true

  client.start do |https|
    case @method
    when :post then return https.post(@path, @body, headers)
    else raise ArgumentError, "#{@method} is unknown HTTP method"
    end
  end
end

Private Instance Methods

headers() click to toggle source
# File lib/mws/request.rb, line 32
def headers
  {
    "Content-Type" => "text/xml",
    "Content-MD5" => Base64.encode64(Digest::MD5.digest(@body)),
    "User-Agent"  => "MarketplaceWebService/#{MWS::VERSION} (Language=Ruby)",
    "Host"        => @endpoint
  }.merge(@headers)
end