peddler 2.1.0 → 2.1.1
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/lib/mws/fulfillment_inbound_shipment/client.rb +2 -2
- data/lib/mws/reports/client.rb +9 -0
- data/lib/peddler/client.rb +2 -2
- data/lib/peddler/content.rb +69 -0
- data/lib/peddler/flat_file_parser.rb +1 -1
- data/lib/peddler/headers.rb +48 -1
- data/lib/peddler/marketplace.rb +0 -3
- data/lib/peddler/mws.rb +58 -0
- data/lib/peddler/version.rb +1 -1
- data/test/integration/{test_errors.rb → internals/test_errors.rb} +0 -8
- data/test/integration/{test_multibyte_queries.rb → internals/test_multibyte_queries.rb} +0 -0
- data/test/integration/{test_mws_headers.rb → internals/test_mws_headers.rb} +5 -0
- data/test/integration/internals/test_string_encodings.rb +38 -0
- data/test/unit/peddler/test_flat_file_parser.rb +10 -1
- data/test/unit/peddler/test_headers.rb +48 -0
- data/test/vcr_cassettes/Errors.yml +0 -441
- metadata +14 -12
- data/lib/mws/reports/parser.rb +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e7134fb2dff4131780197cb98d282b481c650c9042b71c235557db707d02e10
|
4
|
+
data.tar.gz: 491ddd1e18e480cb2b4250eb1cee4422239cc511ff2c6c1ade32d2ec7717e89e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed79ae488893ad0fd4e4fceebbbeb28074f1b8825dae4b23827db946e3d332b199ce29212de4d48970d2a54316a7aacf9121e9f58581aa57d3be7e75047dcad2
|
7
|
+
data.tar.gz: dbcc2289dcc8dafbd1dc157fdcfcdb6e11712c89a7c1f1ba35ddd280a54a33ef8e382cf5926da276286a24eeb5b15b766ff72be81b07d6bc914ab0677b75fbdb
|
@@ -155,8 +155,8 @@ module MWS
|
|
155
155
|
# Work around a bug upstream
|
156
156
|
#
|
157
157
|
# @see https://github.com/hakanensari/peddler/issues/122
|
158
|
-
rescue Peddler::Errors::Error =>
|
159
|
-
raise unless
|
158
|
+
rescue Peddler::Errors::Error => e
|
159
|
+
raise unless e.message.include?("Value null at 'asinList'")
|
160
160
|
|
161
161
|
get_prep_instructions_for_asin_with_bad_params(ship_to_country_code,
|
162
162
|
*asin_list)
|
data/lib/mws/reports/client.rb
CHANGED
@@ -12,6 +12,7 @@ module MWS
|
|
12
12
|
# Creates a report request
|
13
13
|
#
|
14
14
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_RequestReport.html
|
15
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
15
16
|
# @param [String] report_type
|
16
17
|
# @param [Hash] opts
|
17
18
|
# @option opts [String, #iso8601] :start_date
|
@@ -31,6 +32,7 @@ module MWS
|
|
31
32
|
# Lists report requests
|
32
33
|
#
|
33
34
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportRequestList.html
|
35
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
34
36
|
# @param [Hash] opts
|
35
37
|
# @option opts [Array<String>, String] :report_request_id_list
|
36
38
|
# @option opts [Array<String>, String] :report_type_list
|
@@ -64,6 +66,7 @@ module MWS
|
|
64
66
|
# Counts requested reports
|
65
67
|
#
|
66
68
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportRequestCount.html
|
69
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
67
70
|
# @param [Hash] opts
|
68
71
|
# @option opts [Array<String>, String] :report_type_list
|
69
72
|
# @option opts [Array<String>, String] :report_processing_status_list
|
@@ -82,6 +85,7 @@ module MWS
|
|
82
85
|
# Cancels one or more report requests
|
83
86
|
#
|
84
87
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_CancelReportRequests.html
|
88
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
85
89
|
# @param [Hash] opts
|
86
90
|
# @option opts [Array<String>, String] :report_type_list
|
87
91
|
# @option opts [Array<String>, String] :report_processing_status_list
|
@@ -100,6 +104,7 @@ module MWS
|
|
100
104
|
# Lists reports
|
101
105
|
#
|
102
106
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportList.html
|
107
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
103
108
|
# @param [Hash] opts
|
104
109
|
# @option opts [Integer] :max_count
|
105
110
|
# @option opts [Array<String>, String] :report_type_list
|
@@ -132,6 +137,7 @@ module MWS
|
|
132
137
|
# Counts reports
|
133
138
|
#
|
134
139
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportCount.html
|
140
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
135
141
|
# @param [Hash] opts
|
136
142
|
# @option opts [Array<String>, String] :report_type_list
|
137
143
|
# @option opts [Boolean] :acknowledged
|
@@ -162,6 +168,7 @@ module MWS
|
|
162
168
|
# Creates, updates, or deletes a report request schedule
|
163
169
|
#
|
164
170
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ManageReportSchedule.html
|
171
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
165
172
|
# @param [String] report_type
|
166
173
|
# @param [String] schedule
|
167
174
|
# @param [Hash] opts
|
@@ -178,6 +185,7 @@ module MWS
|
|
178
185
|
# Lists scheduled reports
|
179
186
|
#
|
180
187
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportScheduleList.html
|
188
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
181
189
|
# @param [Array<String>] report_type_list
|
182
190
|
# @return [Peddler::XMLParser]
|
183
191
|
def get_report_schedule_list(*report_type_list)
|
@@ -199,6 +207,7 @@ module MWS
|
|
199
207
|
# Counts scheduled reports
|
200
208
|
#
|
201
209
|
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_GetReportScheduleCount.html
|
210
|
+
# @see https://docs.developer.amazonservices.com/en_US/reports/Reports_ReportType.html
|
202
211
|
# @param [Array<String>] report_type_list
|
203
212
|
# @return [Peddler::XMLParser]
|
204
213
|
def get_report_schedule_count(*report_type_list)
|
data/lib/peddler/client.rb
CHANGED
@@ -116,8 +116,8 @@ module Peddler
|
|
116
116
|
self.body = nil if res.status == 200
|
117
117
|
|
118
118
|
parser.new(res, encoding)
|
119
|
-
rescue ::Excon::Error::HTTPStatus =>
|
120
|
-
handle_http_status_error(
|
119
|
+
rescue ::Excon::Error::HTTPStatus => e
|
120
|
+
handle_http_status_error(e)
|
121
121
|
end
|
122
122
|
|
123
123
|
private
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Peddler
|
4
|
+
# Parses content metadata provided in the headers of a response
|
5
|
+
class Content
|
6
|
+
# @api private
|
7
|
+
attr_reader :headers
|
8
|
+
|
9
|
+
# @api private
|
10
|
+
def initialize(headers)
|
11
|
+
@headers = headers.select { |key| key.start_with?('Content') }
|
12
|
+
end
|
13
|
+
|
14
|
+
# The size of the response body in bytes
|
15
|
+
# @return [String, nil]
|
16
|
+
def length
|
17
|
+
return unless headers['Content-Length']
|
18
|
+
|
19
|
+
headers['Content-Length'].to_i
|
20
|
+
end
|
21
|
+
|
22
|
+
# The MD5 digest of the response body
|
23
|
+
# @return [String, nil]
|
24
|
+
def md5
|
25
|
+
headers['Content-MD5']
|
26
|
+
end
|
27
|
+
|
28
|
+
# The MIME type of the response
|
29
|
+
# @return [String, nil]
|
30
|
+
def media_type
|
31
|
+
return unless headers['Content-Type']
|
32
|
+
|
33
|
+
headers['Content-Type'].split(';').first
|
34
|
+
end
|
35
|
+
|
36
|
+
# The general category into which the MIME type falls
|
37
|
+
# @return [String, nil]
|
38
|
+
def type
|
39
|
+
return unless media_type
|
40
|
+
|
41
|
+
media_type.split('/').first
|
42
|
+
end
|
43
|
+
|
44
|
+
# The exact kind of data of the specified type the MIME type represents
|
45
|
+
# @return [String, nil]
|
46
|
+
def subtype
|
47
|
+
return unless media_type
|
48
|
+
|
49
|
+
media_type.split('/').last
|
50
|
+
end
|
51
|
+
|
52
|
+
# The character encoding of the response
|
53
|
+
# @return [Encoding, nil]
|
54
|
+
def charset
|
55
|
+
match_data = headers['Content-Type']&.match(/charset=(.*);?/)
|
56
|
+
return unless match_data
|
57
|
+
|
58
|
+
Encoding.find(match_data[1])
|
59
|
+
end
|
60
|
+
|
61
|
+
# Whether the response is an XML document
|
62
|
+
# @return [Boolean, nil]
|
63
|
+
def xml?
|
64
|
+
return unless subtype
|
65
|
+
|
66
|
+
subtype == 'xml'
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/peddler/headers.rb
CHANGED
@@ -1,8 +1,55 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Peddler
|
4
|
-
# Parses
|
4
|
+
# Parses useful metadata returned in response headers
|
5
5
|
module Headers
|
6
|
+
# The size of the response body in bytes
|
7
|
+
# @return [String, nil]
|
8
|
+
def content_length
|
9
|
+
return unless headers['Content-Length']
|
10
|
+
|
11
|
+
headers['Content-Length'].to_i
|
12
|
+
end
|
13
|
+
|
14
|
+
# The MD5 digest of the response body
|
15
|
+
# @return [String, nil]
|
16
|
+
def content_md5
|
17
|
+
headers['Content-MD5']
|
18
|
+
end
|
19
|
+
|
20
|
+
# The MIME type of the response
|
21
|
+
# @return [String, nil]
|
22
|
+
def content_media_type
|
23
|
+
return unless headers['Content-Type']
|
24
|
+
|
25
|
+
headers['Content-Type'].split(';').first
|
26
|
+
end
|
27
|
+
|
28
|
+
# The general category into which the MIME type falls
|
29
|
+
# @return [String, nil]
|
30
|
+
def content_type
|
31
|
+
return unless content_media_type
|
32
|
+
|
33
|
+
content_media_type.split('/').first
|
34
|
+
end
|
35
|
+
|
36
|
+
# The exact kind of data of the specified type the MIME type represents
|
37
|
+
# @return [String, nil]
|
38
|
+
def content_subtype
|
39
|
+
return unless content_media_type
|
40
|
+
|
41
|
+
content_media_type.split('/').last
|
42
|
+
end
|
43
|
+
|
44
|
+
# The character encoding of the response
|
45
|
+
# @return [Encoding, nil]
|
46
|
+
def content_charset
|
47
|
+
match_data = headers['Content-Type']&.match(/charset=(.*);?/)
|
48
|
+
return unless match_data
|
49
|
+
|
50
|
+
Encoding.find(match_data[1])
|
51
|
+
end
|
52
|
+
|
6
53
|
# The max hourly request quota for the requested operation
|
7
54
|
# @return [Integer, nil]
|
8
55
|
def mws_quota_max
|
data/lib/peddler/marketplace.rb
CHANGED
@@ -39,9 +39,6 @@ module Peddler
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
-
# Caveat: We use supersets Windows-31J and CP1252 in place of Shift_JIS and
|
43
|
-
# ISO 8859-1 respectively to handle some edge cases. These should be safe to
|
44
|
-
# drop in as replacements.
|
45
42
|
def encoding
|
46
43
|
case country_code
|
47
44
|
when 'JP'
|
data/lib/peddler/mws.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Peddler
|
4
|
+
# Parses MWS metadata provided in the headers of a response
|
5
|
+
class MWS
|
6
|
+
# @api private
|
7
|
+
attr_reader :headers
|
8
|
+
|
9
|
+
# @api private
|
10
|
+
def initialize(headers)
|
11
|
+
@headers = headers.select { |key| key.start_with?('x-mws') }
|
12
|
+
end
|
13
|
+
|
14
|
+
# The max hourly request quota for the requested operation
|
15
|
+
# @return [Integer, nil]
|
16
|
+
def quota_max
|
17
|
+
return unless headers['x-mws-quota-max']
|
18
|
+
|
19
|
+
headers['x-mws-quota-max'].to_i
|
20
|
+
end
|
21
|
+
|
22
|
+
# The remaining hourly request quota for the requested operation
|
23
|
+
# @return [Integer, nil]
|
24
|
+
def quota_remaining
|
25
|
+
return unless headers['x-mws-quota-remaining']
|
26
|
+
|
27
|
+
headers['x-mws-quota-remaining'].to_i
|
28
|
+
end
|
29
|
+
|
30
|
+
# When the hourly request quota for the requested operation resets
|
31
|
+
# @return [Time, nil]
|
32
|
+
def quota_resets_on
|
33
|
+
return unless headers['x-mws-quota-resetsOn']
|
34
|
+
|
35
|
+
Time.parse(headers['x-mws-quota-resetsOn'])
|
36
|
+
end
|
37
|
+
|
38
|
+
# The ID of the request
|
39
|
+
# @return [String, nil]
|
40
|
+
def request_id
|
41
|
+
headers['x-mws-request-id']
|
42
|
+
end
|
43
|
+
|
44
|
+
# The timestamp of the request
|
45
|
+
# @return [Time, nil]
|
46
|
+
def timestamp
|
47
|
+
return unless headers['x-mws-timestamp']
|
48
|
+
|
49
|
+
Time.parse(headers['x-mws-timestamp'])
|
50
|
+
end
|
51
|
+
|
52
|
+
# The context of the response
|
53
|
+
# @return [String, nil]
|
54
|
+
def response_context
|
55
|
+
headers['x-mws-response-context']
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/peddler/version.rb
CHANGED
File without changes
|
@@ -11,6 +11,11 @@ class TestMWSHeaders < IntegrationTest
|
|
11
11
|
res = client.get_lowest_priced_offers_for_asin(client.marketplace.id,
|
12
12
|
'1780935374', 'New')
|
13
13
|
refute_nil res.mws_quota_max
|
14
|
+
refute_nil res.mws_quota_remaining
|
15
|
+
refute_nil res.mws_quota_resets_on
|
16
|
+
refute_nil res.mws_request_id
|
17
|
+
refute_nil res.mws_timestamp
|
18
|
+
refute_nil res.mws_response_context
|
14
19
|
end
|
15
20
|
end
|
16
21
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'integration_helper'
|
4
|
+
require 'mws/reports'
|
5
|
+
|
6
|
+
class TestStringEncodings < IntegrationTest
|
7
|
+
use 'Reports'
|
8
|
+
|
9
|
+
def setup
|
10
|
+
skip unless ENV['LIVE']
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_flat_file_responses
|
14
|
+
get_report('_GET_SELLER_FEEDBACK_DATA_') do |res|
|
15
|
+
assert_equal res.content_charset, res.body.encoding
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def get_report(report_type, start_date: Date.today - 30)
|
22
|
+
clients.each do |client|
|
23
|
+
res = client.request_report(report_type, start_date: start_date)
|
24
|
+
report_request_id = res.dig('ReportRequestInfo', 'ReportRequestId')
|
25
|
+
loop do
|
26
|
+
sleep 15
|
27
|
+
res = client.get_report_request_list(report_request_id_list:
|
28
|
+
report_request_id)
|
29
|
+
status = res.dig('ReportRequestInfo', 'ReportProcessingStatus')
|
30
|
+
next unless status.include?('_DONE_')
|
31
|
+
|
32
|
+
report_id = res.dig('ReportRequestInfo', 'GeneratedReportId')
|
33
|
+
yield client.get_report(report_id)
|
34
|
+
break
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -54,6 +54,14 @@ class TestPeddlerFlatFileParser < MiniTest::Test
|
|
54
54
|
refute_empty parser.content
|
55
55
|
end
|
56
56
|
|
57
|
+
def test_encoding_if_passed_in_header
|
58
|
+
body = build_body("Foo\nfür\n", encoding: Encoding::UTF_8)
|
59
|
+
parser = Peddler::FlatFileParser.new(build_mock_response(body,
|
60
|
+
charset: 'UTF-8'),
|
61
|
+
Encoding::CP1252)
|
62
|
+
assert_equal 'für', parser.parse[0]['Foo']
|
63
|
+
end
|
64
|
+
|
57
65
|
def test_handling_japanese_flat_files
|
58
66
|
body = build_body("Foo\nこんにちは\n", encoding: Encoding::SHIFT_JIS)
|
59
67
|
parser = Peddler::FlatFileParser.new(build_mock_response(body), Encoding::WINDOWS_31J)
|
@@ -91,11 +99,12 @@ class TestPeddlerFlatFileParser < MiniTest::Test
|
|
91
99
|
str.dup.encode(encoding)
|
92
100
|
end
|
93
101
|
|
94
|
-
def build_mock_response(body, ascii: true)
|
102
|
+
def build_mock_response(body, ascii: true, charset: nil)
|
95
103
|
body.force_encoding(Encoding::ASCII_8BIT) if ascii
|
96
104
|
headers = {
|
97
105
|
'Content-MD5' => Digest::MD5.base64digest(body)
|
98
106
|
}
|
107
|
+
headers['Content-Type'] = "text/plain;charset=#{charset}" if charset
|
99
108
|
|
100
109
|
OpenStruct.new(body: body, headers: headers)
|
101
110
|
end
|
@@ -10,6 +10,9 @@ class TestPeddlerHeaders < MiniTest::Test
|
|
10
10
|
|
11
11
|
def setup
|
12
12
|
@headers = {
|
13
|
+
'Content-Length' => '100',
|
14
|
+
'Content-MD5' => 'rkkx1Xv/k56/onrN0m7E/Q==',
|
15
|
+
'Content-Type' => 'text/plain;charset=UTF-8',
|
13
16
|
'x-mws-quota-max' => '200.0',
|
14
17
|
'x-mws-quota-remaining' => '200.0',
|
15
18
|
'x-mws-quota-resetsOn' => '2017-01-30T00:03:00.000Z',
|
@@ -19,6 +22,51 @@ class TestPeddlerHeaders < MiniTest::Test
|
|
19
22
|
}
|
20
23
|
end
|
21
24
|
|
25
|
+
def test_content_length
|
26
|
+
assert_kind_of Integer, content_length
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_content_md5
|
30
|
+
assert content_md5
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_content_media_type
|
34
|
+
assert content_media_type
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_content_type
|
38
|
+
assert content_type
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_content_subtype
|
42
|
+
assert content_subtype
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_content_charset
|
46
|
+
assert_kind_of Encoding, content_charset
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_no_content_length
|
50
|
+
@headers.delete('Content-Length')
|
51
|
+
assert_nil content_length
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_no_content_type
|
55
|
+
@headers.delete('Content-Type')
|
56
|
+
assert_nil content_media_type
|
57
|
+
assert_nil content_type
|
58
|
+
assert_nil content_subtype
|
59
|
+
assert_nil content_charset
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_no_content_charset
|
63
|
+
@headers['Content-Type'] = 'text/xml'
|
64
|
+
assert content_media_type
|
65
|
+
assert content_type
|
66
|
+
assert content_subtype
|
67
|
+
assert_nil content_charset
|
68
|
+
end
|
69
|
+
|
22
70
|
def test_mws_quota_max
|
23
71
|
assert_kind_of Integer, mws_quota_max
|
24
72
|
end
|
@@ -441,445 +441,4 @@ http_interactions:
|
|
441
441
|
</ErrorResponse>
|
442
442
|
http_version:
|
443
443
|
recorded_at: Mon, 23 May 2016 12:17:08 GMT
|
444
|
-
- request:
|
445
|
-
method: post
|
446
|
-
uri: https://mws.amazonservices.com/Orders/2013-09-01
|
447
|
-
body:
|
448
|
-
encoding: UTF-8
|
449
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A25%3A16Z&Version=2013-09-01&Signature=PxxDltfEifbWVzOka2AIu%2BS4JdOtTe%2BinKYqPi1%2B2iw%3D
|
450
|
-
headers:
|
451
|
-
User-Agent:
|
452
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
453
|
-
Content-Type:
|
454
|
-
- application/x-www-form-urlencoded
|
455
|
-
response:
|
456
|
-
status:
|
457
|
-
code: 503
|
458
|
-
message:
|
459
|
-
headers:
|
460
|
-
Server:
|
461
|
-
- Server
|
462
|
-
Date:
|
463
|
-
- Mon, 23 May 2016 12:25:16 GMT
|
464
|
-
Content-Type:
|
465
|
-
- text/xml
|
466
|
-
Content-Length:
|
467
|
-
- '291'
|
468
|
-
Connection:
|
469
|
-
- keep-alive
|
470
|
-
x-mws-request-id:
|
471
|
-
- c09da471-3728-45bd-b149-011107c6b222
|
472
|
-
x-mws-timestamp:
|
473
|
-
- '2016-05-23T12:25:16.616Z'
|
474
|
-
x-mws-response-context:
|
475
|
-
- NjwFjq6NP9uKH9Af1NGr1x+LsCj2WwqkWXNsTBkYiXZlNsJ8pl1i+/gTf/YxABEMxhTUNJB6UynL
|
476
|
-
fVn4cBVpOQ==
|
477
|
-
Vary:
|
478
|
-
- Accept-Encoding,User-Agent
|
479
|
-
body:
|
480
|
-
encoding: UTF-8
|
481
|
-
string: |
|
482
|
-
<?xml version="1.0"?>
|
483
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
484
|
-
<Error>
|
485
|
-
<Type></Type>
|
486
|
-
<Code>RequestThrottled</Code>
|
487
|
-
<Message>Request is throttled</Message>
|
488
|
-
</Error>
|
489
|
-
<RequestID>c09da471-3728-45bd-b149-011107c6b222</RequestID>
|
490
|
-
</ErrorResponse>
|
491
|
-
http_version:
|
492
|
-
recorded_at: Mon, 23 May 2016 12:25:16 GMT
|
493
|
-
- request:
|
494
|
-
method: post
|
495
|
-
uri: https://mws-eu.amazonservices.com/Orders/2013-09-01
|
496
|
-
body:
|
497
|
-
encoding: UTF-8
|
498
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A25%3A30Z&Version=2013-09-01&Signature=2Q4itZiyhGRa1gv4WxdPXz02OraSOyuqZnyTR9QVYkA%3D
|
499
|
-
headers:
|
500
|
-
User-Agent:
|
501
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
502
|
-
Content-Type:
|
503
|
-
- application/x-www-form-urlencoded
|
504
|
-
response:
|
505
|
-
status:
|
506
|
-
code: 503
|
507
|
-
message:
|
508
|
-
headers:
|
509
|
-
Server:
|
510
|
-
- Server
|
511
|
-
Date:
|
512
|
-
- Mon, 23 May 2016 12:25:31 GMT
|
513
|
-
Content-Type:
|
514
|
-
- text/xml
|
515
|
-
Content-Length:
|
516
|
-
- '291'
|
517
|
-
Connection:
|
518
|
-
- keep-alive
|
519
|
-
x-mws-request-id:
|
520
|
-
- 7e25a2e4-32ee-4e6f-9e55-87a7466cfa76
|
521
|
-
x-mws-timestamp:
|
522
|
-
- '2016-05-23T12:25:31.071Z'
|
523
|
-
x-mws-response-context:
|
524
|
-
- VKqFU1/KuOtUTSZ9hzO/1Tz2lAgZN6R+E1Hu9GVhDpD7QU8PSbL4SQhLAmIbrxaiElKpSnRxkhyv
|
525
|
-
NaM9fPte4Q==
|
526
|
-
Vary:
|
527
|
-
- Accept-Encoding,User-Agent
|
528
|
-
body:
|
529
|
-
encoding: UTF-8
|
530
|
-
string: |
|
531
|
-
<?xml version="1.0"?>
|
532
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
533
|
-
<Error>
|
534
|
-
<Type></Type>
|
535
|
-
<Code>RequestThrottled</Code>
|
536
|
-
<Message>Request is throttled</Message>
|
537
|
-
</Error>
|
538
|
-
<RequestID>7e25a2e4-32ee-4e6f-9e55-87a7466cfa76</RequestID>
|
539
|
-
</ErrorResponse>
|
540
|
-
http_version:
|
541
|
-
recorded_at: Mon, 23 May 2016 12:25:31 GMT
|
542
|
-
- request:
|
543
|
-
method: post
|
544
|
-
uri: https://mws-eu.amazonservices.com/Orders/2013-09-01
|
545
|
-
body:
|
546
|
-
encoding: UTF-8
|
547
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A25%3A31Z&Version=2013-09-01&Signature=o%2FXv5yNJiV14RGA0gVC0QY7M9%2FU8Cx8CzvFxz36%2FIN8%3D
|
548
|
-
headers:
|
549
|
-
User-Agent:
|
550
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
551
|
-
Content-Type:
|
552
|
-
- application/x-www-form-urlencoded
|
553
|
-
response:
|
554
|
-
status:
|
555
|
-
code: 503
|
556
|
-
message:
|
557
|
-
headers:
|
558
|
-
Server:
|
559
|
-
- Server
|
560
|
-
Date:
|
561
|
-
- Mon, 23 May 2016 12:25:31 GMT
|
562
|
-
Content-Type:
|
563
|
-
- text/xml
|
564
|
-
Content-Length:
|
565
|
-
- '291'
|
566
|
-
Connection:
|
567
|
-
- keep-alive
|
568
|
-
x-mws-request-id:
|
569
|
-
- 46605ebf-ff3a-4413-8f10-07698078db28
|
570
|
-
x-mws-timestamp:
|
571
|
-
- '2016-05-23T12:25:31.340Z'
|
572
|
-
x-mws-response-context:
|
573
|
-
- QgEen8lhyUfFg2KboDYF5Yu8MuocS3bvS0G50Z0U1ZFnJ8G3JbKQNzx+XkxHTNeyORu1+z6efJNB
|
574
|
-
lHXQnDK7OQ==
|
575
|
-
Vary:
|
576
|
-
- Accept-Encoding,User-Agent
|
577
|
-
body:
|
578
|
-
encoding: UTF-8
|
579
|
-
string: |
|
580
|
-
<?xml version="1.0"?>
|
581
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
582
|
-
<Error>
|
583
|
-
<Type></Type>
|
584
|
-
<Code>RequestThrottled</Code>
|
585
|
-
<Message>Request is throttled</Message>
|
586
|
-
</Error>
|
587
|
-
<RequestID>46605ebf-ff3a-4413-8f10-07698078db28</RequestID>
|
588
|
-
</ErrorResponse>
|
589
|
-
http_version:
|
590
|
-
recorded_at: Mon, 23 May 2016 12:25:31 GMT
|
591
|
-
- request:
|
592
|
-
method: post
|
593
|
-
uri: https://mws.amazonservices.com/Orders/2013-09-01
|
594
|
-
body:
|
595
|
-
encoding: UTF-8
|
596
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A26%3A15Z&Version=2013-09-01&Signature=IZu%2FVXyk42RToI%2FBx42JvU4rcaOVydIJy5FxE06tQRg%3D
|
597
|
-
headers:
|
598
|
-
User-Agent:
|
599
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
600
|
-
Content-Type:
|
601
|
-
- application/x-www-form-urlencoded
|
602
|
-
response:
|
603
|
-
status:
|
604
|
-
code: 503
|
605
|
-
message:
|
606
|
-
headers:
|
607
|
-
Server:
|
608
|
-
- Server
|
609
|
-
Date:
|
610
|
-
- Mon, 23 May 2016 12:26:16 GMT
|
611
|
-
Content-Type:
|
612
|
-
- text/xml
|
613
|
-
Content-Length:
|
614
|
-
- '291'
|
615
|
-
Connection:
|
616
|
-
- keep-alive
|
617
|
-
x-mws-request-id:
|
618
|
-
- 7f0f0820-dc56-41d1-9962-580e1b92966d
|
619
|
-
x-mws-timestamp:
|
620
|
-
- '2016-05-23T12:26:16.027Z'
|
621
|
-
x-mws-response-context:
|
622
|
-
- CFLgOA9pzgjsRxjXR7bINfg1tMGVNb+3mfQZa4+The0i8HWIxM06sLRJUOt0hq426i8PIO3bFVNQ
|
623
|
-
JuMPU0CUzQ==
|
624
|
-
Vary:
|
625
|
-
- Accept-Encoding,User-Agent
|
626
|
-
body:
|
627
|
-
encoding: UTF-8
|
628
|
-
string: |
|
629
|
-
<?xml version="1.0"?>
|
630
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
631
|
-
<Error>
|
632
|
-
<Type></Type>
|
633
|
-
<Code>RequestThrottled</Code>
|
634
|
-
<Message>Request is throttled</Message>
|
635
|
-
</Error>
|
636
|
-
<RequestID>7f0f0820-dc56-41d1-9962-580e1b92966d</RequestID>
|
637
|
-
</ErrorResponse>
|
638
|
-
http_version:
|
639
|
-
recorded_at: Mon, 23 May 2016 12:26:16 GMT
|
640
|
-
- request:
|
641
|
-
method: post
|
642
|
-
uri: https://mws-eu.amazonservices.com/Orders/2013-09-01
|
643
|
-
body:
|
644
|
-
encoding: UTF-8
|
645
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A26%3A36Z&Version=2013-09-01&Signature=S9d0UNtrXTA%2FL7BZB14TAVZvtIlopBhmoyHmzTPejbc%3D
|
646
|
-
headers:
|
647
|
-
User-Agent:
|
648
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
649
|
-
Content-Type:
|
650
|
-
- application/x-www-form-urlencoded
|
651
|
-
response:
|
652
|
-
status:
|
653
|
-
code: 503
|
654
|
-
message:
|
655
|
-
headers:
|
656
|
-
Server:
|
657
|
-
- Server
|
658
|
-
Date:
|
659
|
-
- Mon, 23 May 2016 12:26:36 GMT
|
660
|
-
Content-Type:
|
661
|
-
- text/xml
|
662
|
-
Content-Length:
|
663
|
-
- '291'
|
664
|
-
Connection:
|
665
|
-
- keep-alive
|
666
|
-
x-mws-request-id:
|
667
|
-
- 429d190c-0c4a-46c8-b9a9-5f46511b53b3
|
668
|
-
x-mws-timestamp:
|
669
|
-
- '2016-05-23T12:26:36.747Z'
|
670
|
-
x-mws-response-context:
|
671
|
-
- cfmuZjCu4F8iJQa0nKHETjvnCfAVDCAkt/Us5XzHjlsIROVZ0G6zeLPb5hhIJiCCX83im4tq9GN4
|
672
|
-
34itm7iJzA==
|
673
|
-
Vary:
|
674
|
-
- Accept-Encoding,User-Agent
|
675
|
-
body:
|
676
|
-
encoding: UTF-8
|
677
|
-
string: |
|
678
|
-
<?xml version="1.0"?>
|
679
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
680
|
-
<Error>
|
681
|
-
<Type></Type>
|
682
|
-
<Code>RequestThrottled</Code>
|
683
|
-
<Message>Request is throttled</Message>
|
684
|
-
</Error>
|
685
|
-
<RequestID>429d190c-0c4a-46c8-b9a9-5f46511b53b3</RequestID>
|
686
|
-
</ErrorResponse>
|
687
|
-
http_version:
|
688
|
-
recorded_at: Mon, 23 May 2016 12:26:36 GMT
|
689
|
-
- request:
|
690
|
-
method: post
|
691
|
-
uri: https://mws.amazonservices.jp/Orders/2013-09-01
|
692
|
-
body:
|
693
|
-
encoding: UTF-8
|
694
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A28%3A23Z&Version=2013-09-01&Signature=R%2B8ZRIBw3XDPt9F9Mfoo%2Bw%2Bot6dqahDq2BYqXTOh6Zc%3D
|
695
|
-
headers:
|
696
|
-
User-Agent:
|
697
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
698
|
-
Content-Type:
|
699
|
-
- application/x-www-form-urlencoded
|
700
|
-
response:
|
701
|
-
status:
|
702
|
-
code: 503
|
703
|
-
message:
|
704
|
-
headers:
|
705
|
-
Server:
|
706
|
-
- Server
|
707
|
-
Date:
|
708
|
-
- Mon, 23 May 2016 12:28:24 GMT
|
709
|
-
Content-Type:
|
710
|
-
- text/xml
|
711
|
-
Content-Length:
|
712
|
-
- '278'
|
713
|
-
Connection:
|
714
|
-
- keep-alive
|
715
|
-
x-mws-request-id:
|
716
|
-
- 759022d5-6990-4bfc-9351-7cc67d008955
|
717
|
-
x-mws-timestamp:
|
718
|
-
- '2016-05-23T12:28:24.370Z'
|
719
|
-
x-mws-response-context:
|
720
|
-
- lyk6D6bzzrWJabg2K47GU1ZWgRd9GuKznFtvfMEq8ZR/luGH+UkRBES1fTrCUabXCkaaMdOy0bKq
|
721
|
-
6z4ZKfQuwg==
|
722
|
-
Vary:
|
723
|
-
- Accept-Encoding,User-Agent
|
724
|
-
body:
|
725
|
-
encoding: UTF-8
|
726
|
-
string: |
|
727
|
-
<?xml version="1.0"?>
|
728
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
729
|
-
<Error>
|
730
|
-
<Type></Type>
|
731
|
-
<Code>RequestThrottled</Code>
|
732
|
-
<Message>Request is throttled</Message>
|
733
|
-
</Error>
|
734
|
-
<RequestID>759022d5-6990-4bfc-9351-7cc67d008955</RequestID>
|
735
|
-
</ErrorResponse>
|
736
|
-
http_version:
|
737
|
-
recorded_at: Mon, 23 May 2016 12:28:24 GMT
|
738
|
-
- request:
|
739
|
-
method: post
|
740
|
-
uri: https://mws-eu.amazonservices.com/Orders/2013-09-01
|
741
|
-
body:
|
742
|
-
encoding: UTF-8
|
743
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A29%3A37Z&Version=2013-09-01&Signature=7hG243Xw2rPWKYyfIKoGUA0LTRDLL6H3FJYfeG9y5kQ%3D
|
744
|
-
headers:
|
745
|
-
User-Agent:
|
746
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
747
|
-
Content-Type:
|
748
|
-
- application/x-www-form-urlencoded
|
749
|
-
response:
|
750
|
-
status:
|
751
|
-
code: 503
|
752
|
-
message:
|
753
|
-
headers:
|
754
|
-
Server:
|
755
|
-
- Server
|
756
|
-
Date:
|
757
|
-
- Mon, 23 May 2016 12:29:37 GMT
|
758
|
-
Content-Type:
|
759
|
-
- text/xml
|
760
|
-
Content-Length:
|
761
|
-
- '291'
|
762
|
-
Connection:
|
763
|
-
- keep-alive
|
764
|
-
x-mws-request-id:
|
765
|
-
- 19f0a252-96de-4a79-8052-b66fb4f441be
|
766
|
-
x-mws-timestamp:
|
767
|
-
- '2016-05-23T12:29:37.344Z'
|
768
|
-
x-mws-response-context:
|
769
|
-
- lyk6D6bzzrWJabg2K47GU1ZWgRd9GuKznFtvfMEq8ZR/luGH+UkRBES1fTrCUabXCkaaMdOy0bKq
|
770
|
-
6z4ZKfQuwg==
|
771
|
-
Vary:
|
772
|
-
- Accept-Encoding,User-Agent
|
773
|
-
body:
|
774
|
-
encoding: UTF-8
|
775
|
-
string: |
|
776
|
-
<?xml version="1.0"?>
|
777
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
778
|
-
<Error>
|
779
|
-
<Type></Type>
|
780
|
-
<Code>RequestThrottled</Code>
|
781
|
-
<Message>Request is throttled</Message>
|
782
|
-
</Error>
|
783
|
-
<RequestID>19f0a252-96de-4a79-8052-b66fb4f441be</RequestID>
|
784
|
-
</ErrorResponse>
|
785
|
-
http_version:
|
786
|
-
recorded_at: Mon, 23 May 2016 12:29:37 GMT
|
787
|
-
- request:
|
788
|
-
method: post
|
789
|
-
uri: https://mws-eu.amazonservices.com/Orders/2013-09-01
|
790
|
-
body:
|
791
|
-
encoding: UTF-8
|
792
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A30%3A11Z&Version=2013-09-01&Signature=%2Be9QXTopUhMUaQ0kEmtB2pEUEjt7vI7LoLVqNtV6ZCA%3D
|
793
|
-
headers:
|
794
|
-
User-Agent:
|
795
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
796
|
-
Content-Type:
|
797
|
-
- application/x-www-form-urlencoded
|
798
|
-
response:
|
799
|
-
status:
|
800
|
-
code: 503
|
801
|
-
message:
|
802
|
-
headers:
|
803
|
-
Server:
|
804
|
-
- Server
|
805
|
-
Date:
|
806
|
-
- Mon, 23 May 2016 12:30:11 GMT
|
807
|
-
Content-Type:
|
808
|
-
- text/xml
|
809
|
-
Content-Length:
|
810
|
-
- '291'
|
811
|
-
Connection:
|
812
|
-
- keep-alive
|
813
|
-
x-mws-request-id:
|
814
|
-
- 840d7fe6-fbf4-4bc6-a7d6-018269e8e57b
|
815
|
-
x-mws-timestamp:
|
816
|
-
- '2016-05-23T12:30:11.392Z'
|
817
|
-
x-mws-response-context:
|
818
|
-
- oE6oYNMqkjV8eW/BRjuzEzjF3NARnODl8w8C4anviesEnSpZ96k17Rg+xbcBCWGmYUake7FbiO4k
|
819
|
-
r3+dcWKcsg==
|
820
|
-
Vary:
|
821
|
-
- Accept-Encoding,User-Agent
|
822
|
-
body:
|
823
|
-
encoding: UTF-8
|
824
|
-
string: |
|
825
|
-
<?xml version="1.0"?>
|
826
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
827
|
-
<Error>
|
828
|
-
<Type></Type>
|
829
|
-
<Code>RequestThrottled</Code>
|
830
|
-
<Message>Request is throttled</Message>
|
831
|
-
</Error>
|
832
|
-
<RequestID>840d7fe6-fbf4-4bc6-a7d6-018269e8e57b</RequestID>
|
833
|
-
</ErrorResponse>
|
834
|
-
http_version:
|
835
|
-
recorded_at: Mon, 23 May 2016 12:30:11 GMT
|
836
|
-
- request:
|
837
|
-
method: post
|
838
|
-
uri: https://mws.amazonservices.com/Orders/2013-09-01
|
839
|
-
body:
|
840
|
-
encoding: UTF-8
|
841
|
-
string: AWSAccessKeyId=AWS_ACCESS_KEY_ID&Action=GetOrder&AmazonOrderId.Id.1=foo&SellerId=MERCHANT_ID&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-05-23T12%3A33%3A44Z&Version=2013-09-01&Signature=afEobB041YouF04d%2F8460n2%2ByPiR6UVaShWiAKFuOQo%3D
|
842
|
-
headers:
|
843
|
-
User-Agent:
|
844
|
-
- Jeff/1.5.1 (Language=Ruby; Hakans-MacBook.home)
|
845
|
-
Content-Type:
|
846
|
-
- application/x-www-form-urlencoded
|
847
|
-
response:
|
848
|
-
status:
|
849
|
-
code: 503
|
850
|
-
message:
|
851
|
-
headers:
|
852
|
-
Server:
|
853
|
-
- Server
|
854
|
-
Date:
|
855
|
-
- Mon, 23 May 2016 12:33:45 GMT
|
856
|
-
Content-Type:
|
857
|
-
- text/xml
|
858
|
-
Content-Length:
|
859
|
-
- '291'
|
860
|
-
Connection:
|
861
|
-
- keep-alive
|
862
|
-
x-mws-request-id:
|
863
|
-
- 5ca0af8a-0443-4a26-8b63-a9764863c7d8
|
864
|
-
x-mws-timestamp:
|
865
|
-
- '2016-05-23T12:33:45.154Z'
|
866
|
-
x-mws-response-context:
|
867
|
-
- ecBayQO8iftN3M2GSxDGtX4wcqNrso6pTS5SBv8W1UYGGcnV/9z023Ged2cfmM21hd96dLt8fxTW
|
868
|
-
mxislaXEhA==
|
869
|
-
Vary:
|
870
|
-
- Accept-Encoding,User-Agent
|
871
|
-
body:
|
872
|
-
encoding: UTF-8
|
873
|
-
string: |
|
874
|
-
<?xml version="1.0"?>
|
875
|
-
<ErrorResponse xmlns="https://mws.amazonservices.com/Orders/2013-09-01">
|
876
|
-
<Error>
|
877
|
-
<Type></Type>
|
878
|
-
<Code>RequestThrottled</Code>
|
879
|
-
<Message>Request is throttled</Message>
|
880
|
-
</Error>
|
881
|
-
<RequestID>5ca0af8a-0443-4a26-8b63-a9764863c7d8</RequestID>
|
882
|
-
</ErrorResponse>
|
883
|
-
http_version:
|
884
|
-
recorded_at: Mon, 23 May 2016 12:33:45 GMT
|
885
444
|
recorded_with: VCR 3.0.1
|
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: 2.1.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hakan Ensari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-04-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -84,13 +84,13 @@ files:
|
|
84
84
|
- lib/mws/recommendations/client.rb
|
85
85
|
- lib/mws/reports.rb
|
86
86
|
- lib/mws/reports/client.rb
|
87
|
-
- lib/mws/reports/parser.rb
|
88
87
|
- lib/mws/sellers.rb
|
89
88
|
- lib/mws/sellers/client.rb
|
90
89
|
- lib/mws/subscriptions.rb
|
91
90
|
- lib/mws/subscriptions/client.rb
|
92
91
|
- lib/peddler.rb
|
93
92
|
- lib/peddler/client.rb
|
93
|
+
- lib/peddler/content.rb
|
94
94
|
- lib/peddler/errors/builder.rb
|
95
95
|
- lib/peddler/errors/class_generator.rb
|
96
96
|
- lib/peddler/errors/error.rb
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- lib/peddler/flat_file_parser.rb
|
99
99
|
- lib/peddler/headers.rb
|
100
100
|
- lib/peddler/marketplace.rb
|
101
|
+
- lib/peddler/mws.rb
|
101
102
|
- lib/peddler/operation.rb
|
102
103
|
- lib/peddler/parser.rb
|
103
104
|
- lib/peddler/structured_list.rb
|
@@ -107,14 +108,15 @@ files:
|
|
107
108
|
- lib/peddler/xml_response_parser.rb
|
108
109
|
- test/credentials.rb
|
109
110
|
- test/helper.rb
|
110
|
-
- test/integration/test_errors.rb
|
111
|
+
- test/integration/internals/test_errors.rb
|
112
|
+
- test/integration/internals/test_multibyte_queries.rb
|
113
|
+
- test/integration/internals/test_mws_headers.rb
|
114
|
+
- test/integration/internals/test_string_encodings.rb
|
111
115
|
- test/integration/test_feeds.rb
|
112
116
|
- test/integration/test_fulfillment_inbound_shipment.rb
|
113
117
|
- test/integration/test_fulfillment_inventory.rb
|
114
118
|
- test/integration/test_fulfillment_outbound_shipment.rb
|
115
119
|
- test/integration/test_merchant_fulfillment.rb
|
116
|
-
- test/integration/test_multibyte_queries.rb
|
117
|
-
- test/integration/test_mws_headers.rb
|
118
120
|
- test/integration/test_off_amazon_payments.rb
|
119
121
|
- test/integration/test_orders.rb
|
120
122
|
- test/integration/test_products.rb
|
@@ -185,15 +187,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
187
|
requirements:
|
186
188
|
- - ">="
|
187
189
|
- !ruby/object:Gem::Version
|
188
|
-
version: '2.
|
190
|
+
version: '2.4'
|
189
191
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
192
|
requirements:
|
191
193
|
- - ">="
|
192
194
|
- !ruby/object:Gem::Version
|
193
195
|
version: '0'
|
194
196
|
requirements: []
|
195
|
-
|
196
|
-
rubygems_version: 2.7.6
|
197
|
+
rubygems_version: 3.0.3
|
197
198
|
signing_key:
|
198
199
|
specification_version: 4
|
199
200
|
summary: Wraps the Amazon MWS APIs
|
@@ -231,15 +232,16 @@ test_files:
|
|
231
232
|
- test/helper.rb
|
232
233
|
- test/integration/test_orders.rb
|
233
234
|
- test/integration/test_recommendations.rb
|
234
|
-
- test/integration/test_multibyte_queries.rb
|
235
235
|
- test/integration/test_feeds.rb
|
236
236
|
- test/integration/test_fulfillment_outbound_shipment.rb
|
237
237
|
- test/integration/test_fulfillment_inbound_shipment.rb
|
238
|
-
- test/integration/test_mws_headers.rb
|
239
238
|
- test/integration/test_reports.rb
|
240
239
|
- test/integration/test_subscriptions.rb
|
240
|
+
- test/integration/internals/test_multibyte_queries.rb
|
241
|
+
- test/integration/internals/test_mws_headers.rb
|
242
|
+
- test/integration/internals/test_errors.rb
|
243
|
+
- test/integration/internals/test_string_encodings.rb
|
241
244
|
- test/integration/test_merchant_fulfillment.rb
|
242
|
-
- test/integration/test_errors.rb
|
243
245
|
- test/integration/test_sellers.rb
|
244
246
|
- test/integration/test_products.rb
|
245
247
|
- test/integration/test_off_amazon_payments.rb
|
data/lib/mws/reports/parser.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'peddler/flat_file_parser'
|
4
|
-
require 'peddler/xml_response_parser'
|
5
|
-
|
6
|
-
module MWS
|
7
|
-
module Reports
|
8
|
-
# @api private
|
9
|
-
module Parser
|
10
|
-
class << self
|
11
|
-
# We're massaging data produced by a motley army of developers. It's
|
12
|
-
# messy.
|
13
|
-
def new(res, encoding)
|
14
|
-
# Don't parse if there's no body
|
15
|
-
return res unless res.body
|
16
|
-
|
17
|
-
if xml?(res)
|
18
|
-
XMLResponseParser.new(res)
|
19
|
-
else
|
20
|
-
# Amazon returns a variety of content types for flat files. I simply
|
21
|
-
# assume anything not XML is a flat file.
|
22
|
-
FlatFileParser.new(res, encoding)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def xml?(res)
|
27
|
-
return true if res.headers['Content-Type'].start_with?('text/xml')
|
28
|
-
return true if res.body.start_with?('<?xml')
|
29
|
-
|
30
|
-
false
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|