Sha256: 232cffae18b44b86e5e74d233ade036129a6204127a9d1b15e0808132685f031
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
module MWS module API # Base Class class Base attr_reader :connection, :uri, :version, :verb # TODO: Temporary solution, move to configuration DEFAULT_TIMEOUT = 2000 def initialize(connection) @verb ||= :get @connection = connection end 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 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 def method_missing(name, *args) if self.class::ACTIONS.include?(name) call(name, *args) else super end end def http_request_options { timeout: DEFAULT_TIMEOUT } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mws_rb-0.0.6 | lib/mws/api/base.rb |