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