shoptet 0.0.12 → 0.0.17
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/shoptet.rb +26 -4
- data/lib/shoptet/request.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c6e34af9913575eccf62bb7733798b354a81e3fc00046ba5585461c8bb65a52f
|
4
|
+
data.tar.gz: c531d53f42166c618b7d66bb7418d1c9d4d715037f482523718d5c717d25afb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aff6a24d95315896100ee17100d53dad6293e51c860361dc78b2094466e3f0d260b0407f6701af426458a247c75aefa770233d8df24df2c3c1cde41cbed6bc40
|
7
|
+
data.tar.gz: 1f57093bca36597126821cdc033980ca35cad71d440d2deae93eee4092a35e410b27ad76077f2b194b111c319cdc8918119026f7c4d32a91f33b43a79612e326
|
data/lib/shoptet.rb
CHANGED
@@ -9,6 +9,12 @@ class Shoptet
|
|
9
9
|
class AddonNotInstalled < StandardError; end
|
10
10
|
class InvalidTokenNoRights < StandardError; end
|
11
11
|
class EmptyRequestResponse < StandardError; end
|
12
|
+
class MaxPageReached < StandardError; end
|
13
|
+
class UnsuccessfulApiResponse < StandardError; end
|
14
|
+
|
15
|
+
EXPIRED_TOKEN_CODE = 'expired-token'
|
16
|
+
INVALID_TOKEN_CODE = 'invalid-token'
|
17
|
+
ADDON_NOT_INSTALLED = 'Addon installation is not approved.'
|
12
18
|
|
13
19
|
DEFAULT_ON_TOKEN_ERROR = -> (api) do
|
14
20
|
api.api_token = api.new_api_token
|
@@ -67,7 +73,7 @@ class Shoptet
|
|
67
73
|
end
|
68
74
|
|
69
75
|
def self.version
|
70
|
-
'0.0.
|
76
|
+
'0.0.17'
|
71
77
|
end
|
72
78
|
|
73
79
|
def self.ar_on_token_error(model)
|
@@ -248,6 +254,14 @@ class Shoptet
|
|
248
254
|
end
|
249
255
|
end
|
250
256
|
|
257
|
+
def suspended?
|
258
|
+
data = shop_info
|
259
|
+
|
260
|
+
false if data
|
261
|
+
rescue Shoptet::AddonSuspended
|
262
|
+
true
|
263
|
+
end
|
264
|
+
|
251
265
|
private
|
252
266
|
|
253
267
|
def enumerize base_url, filters = {}, data_key = nil
|
@@ -257,15 +271,23 @@ class Shoptet
|
|
257
271
|
def handle_errors result, uri, headers
|
258
272
|
error = result['error']
|
259
273
|
errors = result['errors'] || []
|
260
|
-
token_errors, non_token_errors = errors.partition
|
274
|
+
token_errors, non_token_errors = errors.partition do |err|
|
275
|
+
code = err['errorCode']
|
276
|
+
message = err['message']
|
277
|
+
|
278
|
+
code == EXPIRED_TOKEN_CODE ||
|
279
|
+
code == INVALID_TOKEN_CODE && (message.include?('Invalid access token') || message.include?('Missing access token'))
|
280
|
+
end
|
261
281
|
|
262
282
|
if error || non_token_errors.any?
|
263
|
-
if error == 'addon_suspended'
|
283
|
+
if error == 'addon_suspended' || errors.any? { |e| e["errorCode"] == INVALID_TOKEN_CODE && e['message'] == ADDON_NOT_INSTALLED }
|
264
284
|
raise AddonSuspended
|
265
|
-
elsif error == 'addon_not_installed'
|
285
|
+
elsif (error == 'addon_not_installed')
|
266
286
|
raise AddonNotInstalled
|
267
287
|
elsif errors.any? { |err| err["errorCode"] == 'invalid-token-no-rights' }
|
268
288
|
raise InvalidTokenNoRights
|
289
|
+
elsif errors.any? { |err| err["errorCode"] == 'page-not-found' && err['message'].include?('max page is') }
|
290
|
+
raise MaxPageReached
|
269
291
|
else
|
270
292
|
raise Error.new result
|
271
293
|
end
|
data/lib/shoptet/request.rb
CHANGED
@@ -39,6 +39,11 @@ class Shoptet
|
|
39
39
|
fail Shoptet::EmptyRequestResponse.new(message)
|
40
40
|
end
|
41
41
|
|
42
|
+
unless response.code == '200'
|
43
|
+
message = "Status code: #{response.code}, url: #{uri}"
|
44
|
+
fail Shoptet::UnsuccessfulApiResponse.new(message)
|
45
|
+
end
|
46
|
+
|
42
47
|
parsed_body
|
43
48
|
rescue Net::OpenTimeout
|
44
49
|
retry if attempt < 4
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoptet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Premysl Donat
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: irb
|