commercelayer 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/commercelayer/client.rb +17 -0
- data/lib/commercelayer/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aad7af174809c649623a3ca95f432464a26e37bee3db00bb854dc0f17d9f4423
|
4
|
+
data.tar.gz: 4f39421a15143c1ed5617aa79e20b75c147b4a09a1591e54c6f1e0e2fcff4703
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1cce53d5686793d7b4c903cfd2c1b68d6a4ddf63e50d18fbf1198be477c93adfa5e4158edd1d051626946a4121f8b4f039392428aade44cd5f5aef3e2b09ce0
|
7
|
+
data.tar.gz: 29da18ab4d1f26768c43c90e916d48a9c2980c461888f6a7eec77fa0e037b449d37969d4d998115d6d7633d582f5c785598201b6dd914543676e86690da41f84
|
data/lib/commercelayer/client.rb
CHANGED
@@ -3,6 +3,8 @@ require "oauth2"
|
|
3
3
|
module Commercelayer
|
4
4
|
class Client
|
5
5
|
|
6
|
+
MAX_RETRIES = 1
|
7
|
+
|
6
8
|
def initialize(options={})
|
7
9
|
@client_id = options[:client_id]
|
8
10
|
@client_secret = options[:client_secret]
|
@@ -11,6 +13,21 @@ module Commercelayer
|
|
11
13
|
Resource.site = "#{options[:site]}/api/"
|
12
14
|
end
|
13
15
|
|
16
|
+
def authorized(cached_access_token=nil)
|
17
|
+
begin
|
18
|
+
retries ||= 0
|
19
|
+
Commercelayer::Resource.authorize_with = cached_access_token
|
20
|
+
yield
|
21
|
+
rescue JSONAPI::Consumer::Errors::NotAuthorized
|
22
|
+
if (retries += 1) <= MAX_RETRIES
|
23
|
+
cached_access_token = authorize!
|
24
|
+
retry
|
25
|
+
else
|
26
|
+
raise
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
14
31
|
def authorize!
|
15
32
|
Resource.authorize_with = get_access_token
|
16
33
|
end
|