shoptet 0.0.12 → 0.0.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44764e9a3baef43fabb596f7702f030f9ee3b2d2ef3cd4cd7ec5e9de26622a69
4
- data.tar.gz: cbf1cf85542a688455bb984d30db96986b9bc941ebffdb587e7b6bfbb423493e
3
+ metadata.gz: c6e34af9913575eccf62bb7733798b354a81e3fc00046ba5585461c8bb65a52f
4
+ data.tar.gz: c531d53f42166c618b7d66bb7418d1c9d4d715037f482523718d5c717d25afb9
5
5
  SHA512:
6
- metadata.gz: d07510d07f5a1fd3bd6f91fac8f3cd1f932013c43c836ab9c5c34525ca926d6b251e88f41831abaaa0e46d726a206fbfd9c4ca473e8cdca1218050c1d2b7ecd0
7
- data.tar.gz: fffebdf455902541dbf7aa8acd9c26ab66e454e391f622390b92364bcc787ef0ba25f362e137cc199b787a8b145da834b920e92a961f02c4ed0daec03eb7a470
6
+ metadata.gz: aff6a24d95315896100ee17100d53dad6293e51c860361dc78b2094466e3f0d260b0407f6701af426458a247c75aefa770233d8df24df2c3c1cde41cbed6bc40
7
+ data.tar.gz: 1f57093bca36597126821cdc033980ca35cad71d440d2deae93eee4092a35e410b27ad76077f2b194b111c319cdc8918119026f7c4d32a91f33b43a79612e326
@@ -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.12'
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 { |err| ['invalid-token', 'expired-token'].include? err['errorCode'] }
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
@@ -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.12
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-23 00:00:00.000000000 Z
11
+ date: 2020-11-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irb