class MWS::API::Base

Base Class

Constants

DEFAULT_TIMEOUT

TODO: Temporary solution, move to configuration

Attributes

connection[R]
uri[R]
verb[R]
version[R]

Public Class Methods

new(connection) click to toggle source
# File lib/mws/api/base.rb, line 10
def initialize(connection)
  @verb ||= :get
  @connection = connection
end

Public Instance Methods

build_query_from_params(action, params) click to toggle source
# File lib/mws/api/base.rb, line 27
def build_query_from_params(action, params)
  Query.new(verb: @verb,
            uri: @uri,
            host: @connection.host,
            aws_access_key_id: @connection.aws_access_key_id,
            aws_secret_access_key: @connection.aws_secret_access_key,
            seller_id: @connection.seller_id,
            mws_auth_token: @connection.mws_auth_token,
            action: action.to_s.camelize,
            version: @version,
            params: params.except(:request_params))
end
call(action, params = {}) click to toggle source
# File lib/mws/api/base.rb, line 15
def call(action, params = {})
  @verb ||= params.delete(:verb)
  query = build_query_from_params(action, params)

  case @verb.to_s.upcase
  when 'GET'
    HTTParty.get(query.request_uri, http_request_options)
  when 'POST'
    HTTParty.post(query.request_uri, (params[:request_params] || {}).merge(http_request_options))
  end
end
http_request_options() click to toggle source
# File lib/mws/api/base.rb, line 48
def http_request_options
  {
    timeout: DEFAULT_TIMEOUT
  }
end
method_missing(name, *args) click to toggle source
Calls superclass method
# File lib/mws/api/base.rb, line 40
def method_missing(name, *args)
  if self.class::ACTIONS.include?(name)
    call(name, *args)
  else
    super
  end
end