shoptet 0.0.13 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/shoptet.rb +22 -4
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b54d6391037e97c1da81d008e8bb53f2947cbe9420f5066d193e3ac37de9f2ce
4
- data.tar.gz: 1a3a5b996e229250d145018f1fc4ec9e6befaa542bc7aa7e647059a717cbf216
3
+ metadata.gz: 289440d376a54ad0d925741b1964a1db28beb3f27ea7bfc667eccbc427458f2d
4
+ data.tar.gz: '09d1742a1b57c06acb939aa547aefdea76513905fd89679475438e3c2e515e65'
5
5
  SHA512:
6
- metadata.gz: 14807f333d2eb001674f09cd59264060607084d7ccc132bb9a84554ef98b5d2aaba1261240fd0f8e70d4e20c3a02992fe7631706c848df3078dc46e6865c8a6b
7
- data.tar.gz: 5ad641c3f8a09cf75b3beab292bba91572fa1a4fd35864109826eb9d21fd0d9f3db6dc16b31838413980f931859721c095bde8bd38971274f8f5a99da15626bd
6
+ metadata.gz: 366aa1983278c08fac3864f79e9b3322e5ac72e99a5beca1a3aea72926eb0facafb2cfc8018f46c7fe40459c197823c05c2c6e291231d8e48a41bcac254be199
7
+ data.tar.gz: 745cc481bb6fcc8711bc69b81242097da6a52c9afe0e31a499e5405fc5e8b08c3659e4a5154c151032f0050d18ee99ee8887c14c8316701045d0193289ea6d41
@@ -11,6 +11,10 @@ class Shoptet
11
11
  class EmptyRequestResponse < StandardError; end
12
12
  class MaxPageReached < StandardError; end
13
13
 
14
+ EXPIRED_TOKEN_CODE = 'expired-token'
15
+ INVALID_TOKEN_CODE = 'invalid-token'
16
+ ADDON_NOT_INSTALLED = 'Addon installation is not approved.'
17
+
14
18
  DEFAULT_ON_TOKEN_ERROR = -> (api) do
15
19
  api.api_token = api.new_api_token
16
20
  end
@@ -68,7 +72,7 @@ class Shoptet
68
72
  end
69
73
 
70
74
  def self.version
71
- '0.0.13'
75
+ '0.0.14'
72
76
  end
73
77
 
74
78
  def self.ar_on_token_error(model)
@@ -249,6 +253,14 @@ class Shoptet
249
253
  end
250
254
  end
251
255
 
256
+ def suspended?
257
+ data = shop_info
258
+
259
+ false if data
260
+ rescue Shoptet::AddonSuspended
261
+ true
262
+ end
263
+
252
264
  private
253
265
 
254
266
  def enumerize base_url, filters = {}, data_key = nil
@@ -258,12 +270,18 @@ class Shoptet
258
270
  def handle_errors result, uri, headers
259
271
  error = result['error']
260
272
  errors = result['errors'] || []
261
- token_errors, non_token_errors = errors.partition { |err| ['invalid-token', 'expired-token'].include? err['errorCode'] }
273
+ token_errors, non_token_errors = errors.partition do |err|
274
+ code = err['errorCode']
275
+ message = err['message']
276
+
277
+ code == EXPIRED_TOKEN_CODE ||
278
+ code == INVALID_TOKEN_CODE && message == "Invalid access token."
279
+ end
262
280
 
263
281
  if error || non_token_errors.any?
264
- if error == 'addon_suspended'
282
+ if error == 'addon_suspended' || errors.any? { |e| e["errorCode"] == INVALID_TOKEN_CODE && e['message'] == ADDON_NOT_INSTALLED }
265
283
  raise AddonSuspended
266
- elsif error == 'addon_not_installed'
284
+ elsif (error == 'addon_not_installed')
267
285
  raise AddonNotInstalled
268
286
  elsif errors.any? { |err| err["errorCode"] == 'invalid-token-no-rights' }
269
287
  raise InvalidTokenNoRights
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.13
4
+ version: 0.0.14
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-23 00:00:00.000000000 Z
11
+ date: 2020-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irb