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)


82
83
84
# File 'lib/peddler/client.rb', line 82

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

Class Attribute Details

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



43
44
45
# File 'lib/peddler/client.rb', line 43

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
end

Instance Attribute Details

#auth_tokenString

The MWSAuthToken used to access another seller’s account

Returns:

  • (String)


20
21
22
# File 'lib/peddler/client.rb', line 20

def auth_token
  @auth_token
end

#bodyString

The body of the HTTP request

Returns:

  • (String)


29
30
31
# File 'lib/peddler/client.rb', line 29

def body
  @body
end

#merchant_idString

The merchant’s Seller ID

Returns:

  • (String)


111
112
113
# File 'lib/peddler/client.rb', line 111

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

#pathString

The HTTP path of the API

Returns:

  • (String)


123
124
125
# File 'lib/peddler/client.rb', line 123

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

#primary_marketplace_idString

The merchant’s Marketplace ID

Returns:

  • (String)


94
95
96
# File 'lib/peddler/client.rb', line 94

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.



128
129
130
# File 'lib/peddler/client.rb', line 128

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

Class Method Details

.on_error {|error| ... } ⇒ Object

Sets an error handler

Yield Parameters:

  • error (Excon::Error)


57
58
59
# File 'lib/peddler/client.rb', line 57

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.



46
47
48
# File 'lib/peddler/client.rb', line 46

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.



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

def version(version = nil)
  version ? @version = version : @version ||= nil
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.



87
88
89
# File 'lib/peddler/client.rb', line 87

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.



138
139
140
# File 'lib/peddler/client.rb', line 138

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.



154
155
156
# File 'lib/peddler/client.rb', line 154

def error_handler
  (@error_handler ||= nil) || 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.



143
144
145
# File 'lib/peddler/client.rb', line 143

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.



116
117
118
# File 'lib/peddler/client.rb', line 116

def marketplace
  @marketplace ||= find_marketplace
end

#marketplace_idObject

Deprecated.


99
100
101
# File 'lib/peddler/client.rb', line 99

def marketplace_id
  @primary_marketplace_id
end

#marketplace_id=(marketplace_id) ⇒ Object

Deprecated.


104
105
106
# File 'lib/peddler/client.rb', line 104

def marketplace_id=(marketplace_id)
  @primary_marketplace_id = marketplace_id
end

#on_error {|error| ... } ⇒ Object

Sets an error handler

Yield Parameters:

  • error (Excon::Error)


149
150
151
# File 'lib/peddler/client.rb', line 149

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.



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

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.



164
165
166
167
168
169
170
171
172
173
# File 'lib/peddler/client.rb', line 164

def run
  opts = build_options
  opts.store(:response_block, Proc.new) if block_given?
  res = post(opts)
  self.body = nil if res.status == 200

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