Class: Peddler::Client

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Jeff
Defined in:
lib/peddler/client.rb

Overview

An abstract client

Subclass to implement an MWS API section.

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Client

Creates a new client instance

Parameters:

  • opts (Hash) (defaults to: {})

Options Hash (opts):

  • :primary_marketplace_id (String)
  • :merchant_id (String)
  • :aws_access_key_id (String)
  • :aws_secret_access_key (String)
  • :auth_token (String)


84
85
86
# File 'lib/peddler/client.rb', line 84

def initialize(opts = {})
  opts.each { |k, v| send("#{k}=", v) }
end

Class Attribute Details

.error_handlerObject (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

.parserObject

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_tokenString

The MWSAuthToken used to access another seller’s account

Returns:

  • (String)


17
18
19
# File 'lib/peddler/client.rb', line 17

def auth_token
  @auth_token
end

#bodyString

The body of the HTTP request

Returns:

  • (String)


26
27
28
# File 'lib/peddler/client.rb', line 26

def body
  @body
end

#merchant_idString

The merchant’s Seller ID

Returns:

  • (String)


113
114
115
# File 'lib/peddler/client.rb', line 113

def merchant_id
  @merchant_id ||= ENV['MWS_MERCHANT_ID']
end

#pathString

The HTTP path of the API

Returns:

  • (String)


125
126
127
# File 'lib/peddler/client.rb', line 125

def path
  @path ||= self.class.path
end

#primary_marketplace_idString

The merchant’s Marketplace ID

Returns:

  • (String)


96
97
98
# File 'lib/peddler/client.rb', line 96

def primary_marketplace_id
  @primary_marketplace_id ||= ENV['MWS_MARKETPLACE_ID']
end

#versionObject

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.



130
131
132
# File 'lib/peddler/client.rb', line 130

def version
  @version ||= self.class.version
end

Class Method Details

.on_error {|request, response| ... } ⇒ Object

Sets an error handler

Yield Parameters:

  • request (Excon::Request)
  • response (Excon::Response)


62
63
64
# File 'lib/peddler/client.rb', line 62

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.



50
51
52
# File 'lib/peddler/client.rb', line 50

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.



55
56
57
# File 'lib/peddler/client.rb', line 55

def version(version = nil)
  version ? @version = version : @version
end

Instance Method Details

#aws_endpointObject

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.



89
90
91
# File 'lib/peddler/client.rb', line 89

def aws_endpoint
  "https://#{host}#{path}"
end

#defaultsObject

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.



146
147
148
# File 'lib/peddler/client.rb', line 146

def defaults
  @defaults ||= { expects: 200 }
end

#error_handlerObject

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.



163
164
165
# File 'lib/peddler/client.rb', line 163

def error_handler
  @error_handler || self.class.error_handler
end

#headersObject

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 headers
  @headers ||= {}
end

#marketplaceObject

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.



118
119
120
# File 'lib/peddler/client.rb', line 118

def marketplace
  @marketplace ||= find_marketplace
end

#marketplace_idObject

Deprecated.


101
102
103
# File 'lib/peddler/client.rb', line 101

def marketplace_id
  @primary_marketplace_id
end

#marketplace_id=(marketplace_id) ⇒ Object

Deprecated.


106
107
108
# File 'lib/peddler/client.rb', line 106

def marketplace_id=(marketplace_id)
  @primary_marketplace_id = marketplace_id
end

#on_error {|request, response| ... } ⇒ Object

Sets an error handler

Yield Parameters:

  • request (Excon::Request)
  • response (Excon::Response)


158
159
160
# File 'lib/peddler/client.rb', line 158

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.



168
169
170
# File 'lib/peddler/client.rb', line 168

def operation(action = nil)
  action ? @operation = Operation.new(action) : @operation
end

#runObject

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.



173
174
175
176
177
178
179
180
181
# File 'lib/peddler/client.rb', line 173

def run
  opts = build_options
  opts.store(:response_block, Proc.new) if block_given?
  res = post(opts)

  parser.new(res, encoding)
rescue Excon::Errors::Error => e
  handle_error(e)
end