Class: Peddler::Client
- Inherits:
-
Object
- Object
- Peddler::Client
- Extended by:
- Forwardable
- Includes:
- Jeff
- Defined in:
- lib/peddler/client.rb
Overview
An abstract client
Subclass to implement an MWS API section.
Direct Known Subclasses
MWS::CartInformation::Client, MWS::CustomerInformation::Client, MWS::Feeds::Client, MWS::FulfillmentInboundShipment::Client, MWS::FulfillmentInventory::Client, MWS::FulfillmentOutboundShipment::Client, MWS::OffAmazonPayments::Client, MWS::Orders::Client, MWS::Products::Client, MWS::Recommendations::Client, MWS::Reports::Client, MWS::Sellers::Client, MWS::Subscriptions::Client, MWS::Webstore::Client
Class Attribute Summary collapse
- .error_handler ⇒ Object readonly private
- .parser ⇒ Object private
Instance Attribute Summary collapse
-
#auth_token ⇒ String
The MWSAuthToken used to access another seller’s account.
-
#body ⇒ String
The body of the HTTP request.
-
#marketplace_id ⇒ String
The merchant’s Marketplace ID.
-
#merchant_id ⇒ String
The merchant’s Seller ID.
-
#path ⇒ String
The HTTP path of the API.
- #version ⇒ Object private
Class Method Summary collapse
-
.on_error {|request, response| ... } ⇒ Object
Sets an error handler.
- .path(path = nil) ⇒ Object private
- .version(version = nil) ⇒ Object private
Instance Method Summary collapse
- #aws_endpoint ⇒ Object private
- #defaults ⇒ Object private
- #error_handler ⇒ Object private
- #headers ⇒ Object private
-
#initialize(opts = {}) ⇒ Client
constructor
Creates a new client instance.
- #marketplace ⇒ Object private
-
#on_error {|request, response| ... } ⇒ Object
Sets an error handler.
- #operation(action = nil) ⇒ Object private
- #run ⇒ Object private
Constructor Details
#initialize(opts = {}) ⇒ Client
Creates a new client instance
87 88 89 |
# File 'lib/peddler/client.rb', line 87 def initialize(opts = {}) opts.each { |k, v| send("#{k}=", v) } end |
Class Attribute Details
.error_handler ⇒ Object (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
40 41 42 |
# File 'lib/peddler/client.rb', line 40 def error_handler @error_handler end |
.parser ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
43 44 45 |
# File 'lib/peddler/client.rb', line 43 def parser @parser ||= Parser end |
Instance Attribute Details
#auth_token ⇒ String
The MWSAuthToken used to access another seller’s account
17 18 19 |
# File 'lib/peddler/client.rb', line 17 def auth_token @auth_token end |
#body ⇒ String
The body of the HTTP request
26 27 28 |
# File 'lib/peddler/client.rb', line 26 def body @body end |
#marketplace_id ⇒ String
The merchant’s Marketplace ID
99 100 101 |
# File 'lib/peddler/client.rb', line 99 def marketplace_id @marketplace_id ||= ENV['MWS_MARKETPLACE_ID'] end |
#merchant_id ⇒ String
The merchant’s Seller ID
106 107 108 |
# File 'lib/peddler/client.rb', line 106 def merchant_id @merchant_id ||= ENV['MWS_MERCHANT_ID'] end |
#path ⇒ String
The HTTP path of the API
118 119 120 |
# File 'lib/peddler/client.rb', line 118 def path @path ||= self.class.path end |
#version ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
123 124 125 |
# File 'lib/peddler/client.rb', line 123 def version @version ||= self.class.version end |
Class Method Details
.on_error {|request, response| ... } ⇒ Object
Sets an error handler
67 68 69 |
# File 'lib/peddler/client.rb', line 67 def on_error(&blk) @error_handler = blk end |
.path(path = nil) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
55 56 57 |
# File 'lib/peddler/client.rb', line 55 def path(path = nil) path ? @path = path : @path ||= '/' end |
.version(version = nil) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
60 61 62 |
# File 'lib/peddler/client.rb', line 60 def version(version = nil) version ? @version = version : @version end |
Instance Method Details
#aws_endpoint ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
92 93 94 |
# File 'lib/peddler/client.rb', line 92 def aws_endpoint "https://#{host}#{path}" end |
#defaults ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
134 135 136 |
# File 'lib/peddler/client.rb', line 134 def defaults @defaults ||= { expects: 200 } end |
#error_handler ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
151 152 153 |
# File 'lib/peddler/client.rb', line 151 def error_handler @error_handler || self.class.error_handler end |
#headers ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
139 140 141 |
# File 'lib/peddler/client.rb', line 139 def headers @headers ||= {} end |
#marketplace ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
111 112 113 |
# File 'lib/peddler/client.rb', line 111 def marketplace @marketplace ||= find_marketplace end |
#on_error {|request, response| ... } ⇒ Object
Sets an error handler
146 147 148 |
# File 'lib/peddler/client.rb', line 146 def on_error(&blk) @error_handler = blk end |
#operation(action = nil) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
156 157 158 |
# File 'lib/peddler/client.rb', line 156 def operation(action = nil) action ? @operation = Operation.new(action) : @operation end |
#run ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/peddler/client.rb', line 161 def run opts = defaults.merge(query: operation, headers: headers) opts.store(:body, body) if body opts.store(:response_block, Proc.new) if block_given? res = post(opts) parser.new(res, encoding) rescue Excon::Errors::Error => e handle_error(e) or raise rescue NoMethodError => e if e. == "undefined method `new' for #{parser}" warn "[DEPRECATION] `Parser.parse` is deprecated. Please use `Parser.new` instead." parser.parse(res, encoding) else raise end end |