shoptet 0.0.2 → 0.0.3

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 +14 -7
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f2a8ff1331b90ddcd3421d6408b667643d3fe8b95643ea7833f192a8152103d
4
- data.tar.gz: 8a87de0252b757023dd35c20f67885454d4cc85f72651b4b91c32a9430531805
3
+ metadata.gz: 682cc8f11ec548207514c501fb63e2c18ea8f9cb3a7ff4eb6db35b458b75b022
4
+ data.tar.gz: ec70519cd497dd8a49e9c72ee1940ec084fa0a2203889de3292febb658885c1a
5
5
  SHA512:
6
- metadata.gz: 7b1cfa1f1fe0b8d57bb8df48793224a94dd970adad6af9438ada8bdbeb0ba62caa91578058c50582fdcf2f890970995ff6bb73c56358699b9fa2726dd5801520
7
- data.tar.gz: 5d45e753e5a64158e0d1d21b2f1dbc6daea2c894a70c6a2b43e0eccdd3645fe2ae569f452865c7752fde2b3ea623e90c17dd83c8d005f95f1eb5175901ffa7bd
6
+ metadata.gz: 2ce582d9fdbac257cffd92e2b9cb60ac718141af95a2a744ad27605c35c883bbd82f9838deb9b1fde57802a37740f49309ac034b541b19ad2557e41b09ca0bbc
7
+ data.tar.gz: 0bc005b177781df29dd9c7b0471d317ed108529b717455bd70a88bbb3ccbdc8b303bbd1ff21e9c2e7cb834a969876de547eecd86d17cddf32a80cfa473fe297a
@@ -11,13 +11,14 @@ class Shoptet
11
11
  end
12
12
  end
13
13
  class AddonSuspended < StandardError; end
14
+ class AddonNotInstalled < StandardError; end
14
15
 
15
16
  DEFAULT_ON_TOKEN_ERROR = -> (api) do
16
17
  api.api_token = api.new_api_token
17
18
  end
18
19
 
19
20
  def self.version
20
- '0.0.2'
21
+ '0.0.3'
21
22
  end
22
23
 
23
24
  def self.ar_on_token_error(model)
@@ -106,7 +107,7 @@ class Shoptet
106
107
  headers = { 'Authorization' => "Bearer #{@oauth_token}" }
107
108
 
108
109
  result = Shoptet::Request.get @oauth_url, headers
109
- handle_errors result, @oauth_url
110
+ handle_errors result, @oauth_url, headers
110
111
 
111
112
  result.fetch 'access_token'
112
113
  end
@@ -140,22 +141,26 @@ class Shoptet
140
141
  end
141
142
  end
142
143
 
143
- def request uri
144
+ def request uri, retry_on_token_error = true
144
145
  headers = { 'Shoptet-Access-Token' => @api_token,
145
146
  'Content-Type' => 'application/vnd.shoptet.v1.0' }
146
147
 
147
148
  result = Shoptet::Request.get uri, headers
148
- token_errors = handle_errors result, uri
149
+ token_errors = handle_errors result, uri, headers
149
150
 
150
151
  if token_errors.any?
151
- @on_token_error.call self
152
- request uri
152
+ if retry_on_token_error
153
+ @on_token_error.call self
154
+ request uri, false
155
+ else
156
+ raise Error.new result
157
+ end
153
158
  else
154
159
  result
155
160
  end
156
161
  end
157
162
 
158
- def handle_errors result, uri
163
+ def handle_errors result, uri, headers
159
164
  error = result['error']
160
165
  errors = result['errors'] || []
161
166
  token_errors, non_token_errors = errors.partition { |err| ['invalid-token', 'expired-token'].include? err['errorCode'] }
@@ -163,6 +168,8 @@ class Shoptet
163
168
  if error || non_token_errors.any?
164
169
  if error == 'addon_suspended'
165
170
  raise AddonSuspended
171
+ elsif error == 'addon_not_installed'
172
+ raise AddonNotInstalled
166
173
  else
167
174
  additional_data = {
168
175
  uri: uri,
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.2
4
+ version: 0.0.3
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-07 00:00:00.000000000 Z
11
+ date: 2020-11-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irb