peddler 1.6.1 → 1.6.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4d83b099126be1823bbd9bd9c45ea1d7ec3455f9
4
- data.tar.gz: 74b18adc957648244ac9b7bf04d60fe3006c4fc2
3
+ metadata.gz: 47c52a1b5f75f285052401e6397073ed84c09c9a
4
+ data.tar.gz: 602df49beef094aacc196ae6f5914404a7a94228
5
5
  SHA512:
6
- metadata.gz: 7f977ea894c96c6454bfd442bd8f5e866aaf56029c23649d7d133fbca85b4544a894d99e254847a77afaa36460dfb1caf39f0eefb272982739b0c375cf340ba0
7
- data.tar.gz: 3b7f7bdf62a91254838b412ba634eca896f8a4cb14683ecb92b7e1621c6a7b72d92874e1a1f564abb0529e390ae85c7cf9cf9fb2d399d9ef695d0f888c6358ac
6
+ metadata.gz: 53436bf6a4454256ae5673ace40e55dd753d6eaef38e73640f55e5bdf832d6fa267eb30bf8b9205f09d6a94085c849a6935f4eab219fa10aa2ca6244d42b8b4b
7
+ data.tar.gz: ac510facfb0eebde81447bfa2fcde617a144fc0b50d034bf05d22a8e1e845b098c3f438a9617f4cd104a42aeb017c8ec3dcb0745f08964658b0eb73ac72c29c1
@@ -165,6 +165,42 @@ module MWS
165
165
  run
166
166
  end
167
167
 
168
+ # Returns a list of return reason codes for a seller SKU in a given marketplace.
169
+ #
170
+ # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_ListReturnReasonCodes.html
171
+ # @param [String] seller_sku
172
+ # @param [Hash] opts
173
+ # @option opts [String] :marketplace_id
174
+ # @option opts [String] :seller_fulfillment_order_id
175
+ # @option opts [String] :language
176
+ # @return [Peddler::XMLParser]
177
+ def list_return_reason_codes(seller_sku, opts = {})
178
+ operation('ListReturnReasonCodes')
179
+ .add(
180
+ opts.merge(
181
+ 'SellerSKU' => seller_sku
182
+ )
183
+ )
184
+ .structure!('List', 'member')
185
+
186
+ run
187
+ end
188
+
189
+ # Creates a fulfillment return.
190
+ #
191
+ # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/FBAOutbound_CreateFulfillmentReturn.html
192
+ # @param [String] seller_fulfillment_order_id
193
+ # @param [Array] items
194
+ # @return [Peddler::XMLParser]
195
+ def create_fulfillment_return(seller_fulfillment_order_id, items)
196
+ operation('CreateFulfillmentReturn')
197
+ .add('SellerFulfillmentOrderId' => seller_fulfillment_order_id)
198
+ .add('Items' => items)
199
+ .structure!('Items', 'member')
200
+
201
+ run
202
+ end
203
+
168
204
  # Gets the operational status of the API
169
205
  #
170
206
  # @see http://docs.developer.amazonservices.com/en_US/fba_outbound/MWS_GetServiceStatus.html
@@ -34,7 +34,7 @@ module Peddler
34
34
  private
35
35
 
36
36
  def scrub_body!(encoding)
37
- body.force_encoding(encoding) unless body.encoding == 'UTF-8'
37
+ body.force_encoding(encoding) unless body.encoding == Encoding::UTF_8
38
38
  end
39
39
 
40
40
  def extract_content_and_summary
@@ -12,7 +12,8 @@ module Peddler
12
12
  'APJ6JRA9NG5V4' => 'mws-eu.amazonservices.com',
13
13
  'A1VC38T7YXB528' => 'mws.amazonservices.jp',
14
14
  'A1AM78C64UM0Y8' => 'mws.amazonservices.com.mx',
15
- 'ATVPDKIKX0DER' => 'mws.amazonservices.com'
15
+ 'ATVPDKIKX0DER' => 'mws.amazonservices.com',
16
+ 'A39IBJ37TRP1C6' => 'mws.amazonservices.com.au'
16
17
  }.freeze
17
18
 
18
19
  BadId = Class.new(StandardError)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Peddler
4
- VERSION = '1.6.1'.freeze
4
+ VERSION = '1.6.2'.freeze
5
5
  end
@@ -137,6 +137,52 @@ class TestMWSFulfillmentOutboundShipmentClient < MiniTest::Test
137
137
  assert_equal operation, @client.operation
138
138
  end
139
139
 
140
+ def test_lists_return_reason_codes
141
+ seller_sku = 'ABC123'
142
+ seller_fulfillment_order_id = '123ABC'
143
+
144
+ operation = {
145
+ 'Action' => 'ListReturnReasonCodes',
146
+ 'SellerSKU' => seller_sku,
147
+ 'SellerFulfillmentOrderId' => seller_fulfillment_order_id
148
+ }
149
+
150
+ @client.stub(:run, nil) do
151
+ @client.list_return_reason_codes(
152
+ seller_sku,
153
+ seller_fulfillment_order_id: seller_fulfillment_order_id
154
+ )
155
+ end
156
+
157
+ assert_equal operation, @client.operation
158
+ end
159
+
160
+ def test_creates_fulfillment_return
161
+ seller_fulfillment_order_id = 'ABC123'
162
+
163
+ item = { seller_return_item_id: 'ABC123',
164
+ seller_fulfillment_order_item_id: 'ABC123',
165
+ amazon_shipment_id: 'ABC123',
166
+ return_reason_code: 'VALID_RETURN_REASON_CODE',
167
+ return_comment: 'RETURN COMMENT FROM CLIENT' }
168
+
169
+ operation = {
170
+ 'Action' => 'CreateFulfillmentReturn',
171
+ 'SellerFulfillmentOrderId' => seller_fulfillment_order_id,
172
+ 'Items.member.1.SellerReturnItemId' => item[:seller_return_item_id],
173
+ 'Items.member.1.SellerFulfillmentOrderItemId' => item[:seller_fulfillment_order_item_id],
174
+ 'Items.member.1.AmazonShipmentId' => item[:amazon_shipment_id],
175
+ 'Items.member.1.ReturnReasonCode' => item[:return_reason_code],
176
+ 'Items.member.1.ReturnComment' => item[:return_comment]
177
+ }
178
+
179
+ @client.stub(:run, nil) do
180
+ @client.create_fulfillment_return(seller_fulfillment_order_id, [item])
181
+ end
182
+
183
+ assert_equal operation, @client.operation
184
+ end
185
+
140
186
  def test_gets_service_status
141
187
  operation = {
142
188
  'Action' => 'GetServiceStatus'
@@ -73,10 +73,16 @@ class TestPeddlerFlatFileParser < MiniTest::Test
73
73
  assert_equal '�', parser.parse['Foo'][0]
74
74
  end
75
75
 
76
+ def test_handles_utf8_flat_files
77
+ body = "Foo\nfür\n"
78
+ parser = Peddler::FlatFileParser.new(build_mock_response(body, ascii: false), 'CP1252')
79
+ assert_equal 'für', parser.parse['Foo'][0]
80
+ end
81
+
76
82
  private
77
83
 
78
- def build_mock_response(body)
79
- body.force_encoding('ASCII-8BIT')
84
+ def build_mock_response(body, ascii: true)
85
+ body.force_encoding('ASCII-8BIT') if ascii
80
86
  headers = {
81
87
  'Content-MD5' => Digest::MD5.base64digest(body)
82
88
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peddler
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hakan Ensari
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-24 00:00:00.000000000 Z
11
+ date: 2017-09-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dig_rb
@@ -211,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
211
  version: '0'
212
212
  requirements: []
213
213
  rubyforge_project:
214
- rubygems_version: 2.6.8
214
+ rubygems_version: 2.6.11
215
215
  signing_key:
216
216
  specification_version: 4
217
217
  summary: Wraps the Amazon MWS APIs