Class: MWS::API::Base
- Inherits:
-
Object
- Object
- MWS::API::Base
- Includes:
- HTTParty
- Defined in:
- lib/ruby-mws/api/base.rb
Instance Attribute Summary collapse
-
#response ⇒ Object
Returns the value of attribute response.
Class Method Summary collapse
Instance Method Summary collapse
- #default_params(name) ⇒ Object
- #has_next? ⇒ Boolean (also: #has_next)
-
#initialize(connection) ⇒ Base
constructor
A new instance of Base.
- #inspect ⇒ Object
- #next ⇒ Object
- #send_request(name, params, options = {}) ⇒ Object
Constructor Details
#initialize(connection) ⇒ Base
Returns a new instance of Base.
17 18 19 20 21 22 |
# File 'lib/ruby-mws/api/base.rb', line 17 def initialize(connection) @connection = connection @saved_options = {} @next = {} self.class.base_uri "https://#{connection.host}" end |
Instance Attribute Details
#response ⇒ Object
Returns the value of attribute response.
15 16 17 |
# File 'lib/ruby-mws/api/base.rb', line 15 def response @response end |
Class Method Details
.def_request(requests, *options) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/ruby-mws/api/base.rb', line 24 def self.def_request(requests, *) [requests].flatten.each do |name| self.class_eval %Q{ @@#{name}_options = options.first def #{name}(params={}) send_request(:#{name}, params, @@#{name}_options) end } end end |
Instance Method Details
#default_params(name) ⇒ Object
53 54 55 56 57 58 59 60 61 |
# File 'lib/ruby-mws/api/base.rb', line 53 def default_params(name) { :action => name.to_s.camelize, :signature_method => 'HmacSHA256', :signature_version => '2', :timestamp => Time.now.iso8601, :version => '2009-01-01' } end |
#has_next? ⇒ Boolean Also known as: has_next
63 64 65 |
# File 'lib/ruby-mws/api/base.rb', line 63 def has_next? not @next[:token].nil? end |
#inspect ⇒ Object
72 73 74 |
# File 'lib/ruby-mws/api/base.rb', line 72 def inspect "#<#{self.class.to_s}:#{object_id}>" end |
#next ⇒ Object
68 69 70 |
# File 'lib/ruby-mws/api/base.rb', line 68 def next self.send(@next[:action], :next_token => @next[:token]) unless @next[:token].nil? end |
#send_request(name, params, options = {}) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/ruby-mws/api/base.rb', line 35 def send_request(name, params, ={}) # prepare all required params... params = [default_params(name), params, , @connection.to_hash].inject :merge params[:lists] ||= {} params[:lists][:marketplace_id] = "MarketplaceId.Id" query = Query.new params resp = self.class.send(params[:verb], query.request_uri) @response = Response.parse resp, name, params if @response.respond_to?(:next_token) and @next[:token] = @response.next_token # modifying, not comparing @next[:action] = name.match(/_by_next_token/) ? name : "#{name}_by_next_token" end @response end |