peddler 1.6.7 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|