peddler 1.6.7 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +69 -67
- data/lib/mws/feeds/client.rb +15 -12
- data/lib/mws/finances/client.rb +12 -11
- data/lib/mws/fulfillment_inbound_shipment/client.rb +79 -107
- data/lib/mws/fulfillment_inventory/client.rb +5 -5
- data/lib/mws/fulfillment_outbound_shipment/client.rb +36 -44
- data/lib/mws/merchant_fulfillment/client.rb +11 -17
- data/lib/mws/off_amazon_payments/client.rb +38 -68
- data/lib/mws/orders/client.rb +28 -24
- data/lib/mws/products/client.rb +118 -153
- data/lib/mws/recommendations/client.rb +13 -17
- data/lib/mws/reports/client.rb +24 -23
- data/lib/mws/sellers/client.rb +5 -5
- data/lib/mws/subscriptions/client.rb +25 -36
- data/lib/peddler/client.rb +47 -124
- data/lib/peddler/errors/builder.rb +40 -14
- data/lib/peddler/errors/class_generator.rb +34 -0
- data/lib/peddler/errors/error.rb +13 -3
- data/lib/peddler/headers.rb +27 -11
- data/lib/peddler/marketplace.rb +30 -11
- data/lib/peddler/vcr_matcher.rb +11 -1
- data/lib/peddler/version.rb +1 -1
- data/lib/peddler/xml_parser.rb +4 -2
- data/lib/peddler/xml_response_parser.rb +1 -1
- data/test/helper.rb +0 -1
- data/test/integration/test_errors.rb +2 -14
- data/test/integration/test_feeds.rb +0 -3
- data/test/integration/test_multibyte_queries.rb +1 -1
- data/test/integration/test_mws_headers.rb +3 -2
- data/test/integration/test_orders.rb +2 -1
- data/test/integration/test_products.rb +9 -9
- data/test/integration/test_recommendations.rb +1 -1
- data/test/integration/test_subscriptions.rb +2 -2
- data/test/integration_helper.rb +1 -1
- data/test/mws.yml +36 -0
- data/test/mws.yml.example +8 -12
- data/test/null_client.rb +10 -8
- data/test/unit/mws/test_feeds_client.rb +1 -2
- data/test/unit/mws/test_fulfillment_outbound_shipment_client.rb +1 -1
- data/test/unit/mws/test_off_amazon_payments_client.rb +1 -1
- data/test/unit/mws/test_orders_client.rb +7 -6
- data/test/unit/mws/test_products_client.rb +13 -28
- data/test/unit/mws/test_recommendations_client.rb +1 -2
- data/test/unit/mws/test_reports_client.rb +1 -1
- data/test/unit/mws/test_subscriptions_client.rb +1 -130
- data/test/unit/peddler/errors/test_builder.rb +54 -7
- data/test/unit/peddler/errors/test_class_generator.rb +18 -0
- data/test/unit/peddler/errors/test_error.rb +7 -2
- data/test/unit/peddler/test_client.rb +136 -190
- data/test/unit/peddler/test_flat_file_parser.rb +2 -2
- data/test/unit/peddler/test_headers.rb +19 -9
- data/test/unit/peddler/test_marketplace.rb +18 -5
- data/test/unit/peddler/test_vcr_matcher.rb +3 -1
- data/test/vcr_cassettes/Feeds.yml +4816 -5224
- data/test/vcr_cassettes/Reports.yml +3278 -2604
- metadata +8 -9
- data/lib/peddler/errors.rb +0 -12
- data/lib/peddler/errors/handler.rb +0 -59
- data/test/unit/peddler/errors/test_handler.rb +0 -62
- data/test/unit/peddler/test_errors.rb +0 -26
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:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hakan Ensari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -90,10 +90,9 @@ files:
|
|
90
90
|
- lib/mws/subscriptions/client.rb
|
91
91
|
- lib/peddler.rb
|
92
92
|
- lib/peddler/client.rb
|
93
|
-
- lib/peddler/errors.rb
|
94
93
|
- lib/peddler/errors/builder.rb
|
94
|
+
- lib/peddler/errors/class_generator.rb
|
95
95
|
- lib/peddler/errors/error.rb
|
96
|
-
- lib/peddler/errors/handler.rb
|
97
96
|
- lib/peddler/errors/parser.rb
|
98
97
|
- lib/peddler/flat_file_parser.rb
|
99
98
|
- lib/peddler/headers.rb
|
@@ -123,6 +122,7 @@ files:
|
|
123
122
|
- test/integration/test_sellers.rb
|
124
123
|
- test/integration/test_subscriptions.rb
|
125
124
|
- test/integration_helper.rb
|
125
|
+
- test/mws.yml
|
126
126
|
- test/mws.yml.example
|
127
127
|
- test/null_client.rb
|
128
128
|
- test/recorder.rb
|
@@ -140,11 +140,10 @@ files:
|
|
140
140
|
- test/unit/mws/test_sellers_client.rb
|
141
141
|
- test/unit/mws/test_subscriptions_client.rb
|
142
142
|
- test/unit/peddler/errors/test_builder.rb
|
143
|
+
- test/unit/peddler/errors/test_class_generator.rb
|
143
144
|
- test/unit/peddler/errors/test_error.rb
|
144
|
-
- test/unit/peddler/errors/test_handler.rb
|
145
145
|
- test/unit/peddler/errors/test_parser.rb
|
146
146
|
- test/unit/peddler/test_client.rb
|
147
|
-
- test/unit/peddler/test_errors.rb
|
148
147
|
- test/unit/peddler/test_flat_file_parser.rb
|
149
148
|
- test/unit/peddler/test_headers.rb
|
150
149
|
- test/unit/peddler/test_marketplace.rb
|
@@ -185,7 +184,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
184
|
requirements:
|
186
185
|
- - ">="
|
187
186
|
- !ruby/object:Gem::Version
|
188
|
-
version: '2.
|
187
|
+
version: '2.3'
|
189
188
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
189
|
requirements:
|
191
190
|
- - ">="
|
@@ -207,10 +206,9 @@ test_files:
|
|
207
206
|
- test/unit/peddler/test_xml_response_parser.rb
|
208
207
|
- test/unit/peddler/test_xml_parser.rb
|
209
208
|
- test/unit/peddler/test_flat_file_parser.rb
|
210
|
-
- test/unit/peddler/test_errors.rb
|
211
209
|
- test/unit/peddler/errors/test_error.rb
|
212
210
|
- test/unit/peddler/errors/test_builder.rb
|
213
|
-
- test/unit/peddler/errors/
|
211
|
+
- test/unit/peddler/errors/test_class_generator.rb
|
214
212
|
- test/unit/peddler/errors/test_parser.rb
|
215
213
|
- test/unit/peddler/test_parser.rb
|
216
214
|
- test/unit/mws/test_finances_client.rb
|
@@ -246,6 +244,7 @@ test_files:
|
|
246
244
|
- test/integration/test_off_amazon_payments.rb
|
247
245
|
- test/integration/test_fulfillment_inventory.rb
|
248
246
|
- test/integration_helper.rb
|
247
|
+
- test/mws.yml
|
249
248
|
- test/vcr_cassettes/Products.yml
|
250
249
|
- test/vcr_cassettes/MerchantFulfillment.yml
|
251
250
|
- test/vcr_cassettes/CustomerInformation.yml
|
data/lib/peddler/errors.rb
DELETED
@@ -1,59 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'excon'
|
4
|
-
require 'peddler/errors/builder'
|
5
|
-
|
6
|
-
module Peddler
|
7
|
-
module Errors
|
8
|
-
# @api private
|
9
|
-
class Handler
|
10
|
-
DIGIT_AS_FIRST_CHAR = /^\d/
|
11
|
-
private_constant :DIGIT_AS_FIRST_CHAR
|
12
|
-
|
13
|
-
def self.call(exception)
|
14
|
-
new(exception).handle
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.parameters
|
18
|
-
1
|
19
|
-
end
|
20
|
-
|
21
|
-
attr_reader :exception
|
22
|
-
|
23
|
-
def initialize(exception)
|
24
|
-
@exception = exception
|
25
|
-
end
|
26
|
-
|
27
|
-
def handle
|
28
|
-
raise exception unless http_status_error?
|
29
|
-
raise exception if bad_name_for_error_class?
|
30
|
-
|
31
|
-
raise error_class.new(error_message, exception)
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def error_class
|
37
|
-
Errors.const_get(error_name)
|
38
|
-
rescue NameError
|
39
|
-
Builder.build(error_name)
|
40
|
-
end
|
41
|
-
|
42
|
-
def http_status_error?
|
43
|
-
exception.is_a?(::Excon::Error::HTTPStatus)
|
44
|
-
end
|
45
|
-
|
46
|
-
def bad_name_for_error_class?
|
47
|
-
error_name =~ DIGIT_AS_FIRST_CHAR
|
48
|
-
end
|
49
|
-
|
50
|
-
def error_name
|
51
|
-
exception.response.code
|
52
|
-
end
|
53
|
-
|
54
|
-
def error_message
|
55
|
-
exception.response.message
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'helper'
|
4
|
-
require 'peddler/errors/handler'
|
5
|
-
|
6
|
-
class TestPeddlerErrorsHandler < MiniTest::Test
|
7
|
-
def setup
|
8
|
-
@error = Peddler::Errors::Handler.call(@cause)
|
9
|
-
rescue StandardError => @error
|
10
|
-
end
|
11
|
-
|
12
|
-
class CausedByHTTPStatusError < TestPeddlerErrorsHandler
|
13
|
-
def setup
|
14
|
-
@code = 'FeedProcessingResultNotReady'
|
15
|
-
@message = 'Feed Submission Result is not ready for Feed 123'
|
16
|
-
@cause = Excon::Error::NotFound.new(
|
17
|
-
'Expected(200) <=> Actual(404 Not Found)',
|
18
|
-
nil,
|
19
|
-
OpenStruct.new(code: @code, message: @message)
|
20
|
-
)
|
21
|
-
super
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_generates_custom_error
|
25
|
-
assert_includes @error.class.name, @code
|
26
|
-
end
|
27
|
-
|
28
|
-
def test_provides_message
|
29
|
-
assert_equal @message, @error.message
|
30
|
-
end
|
31
|
-
|
32
|
-
def test_provides_cause
|
33
|
-
assert_equal @cause, @error.cause
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
class CausedByAnotherError < TestPeddlerErrorsHandler
|
38
|
-
def setup
|
39
|
-
@cause = StandardError.new
|
40
|
-
super
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_returns_original_error
|
44
|
-
assert_equal @cause, @error
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
class CausedByInternalServerError < TestPeddlerErrorsHandler
|
49
|
-
def setup
|
50
|
-
@cause = Excon::Error::InternalServerError.new(
|
51
|
-
nil,
|
52
|
-
nil,
|
53
|
-
OpenStruct.new(code: '500', message: nil)
|
54
|
-
)
|
55
|
-
super
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_returns_original_error
|
59
|
-
assert_equal @cause, @error
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'helper'
|
4
|
-
require 'peddler/errors'
|
5
|
-
|
6
|
-
class TestPeddlerErrors < MiniTest::Test
|
7
|
-
def teardown
|
8
|
-
clients.each do |client|
|
9
|
-
client.error_handler = proc { raise }
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
def test_enables_new_error_handler
|
14
|
-
clients.each do |client|
|
15
|
-
assert_equal Peddler::Errors::Handler, client.error_handler
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
private
|
20
|
-
|
21
|
-
def clients
|
22
|
-
MWS.constants.map do |klass|
|
23
|
-
MWS.const_get(klass).const_get(:Client)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|