active_record_api-request 0.3.13 → 0.3.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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1d6e188005d1705103e43caaaeb1b64ffe616927b61a2565a97d6409db6c90f9
|
4
|
+
data.tar.gz: e95f2b46e96a2ebb02d2c4d107d6f1606c77904a4fba4a71ffcb20bd3e26a0c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 06a9ce7ac4ab27d5d20f28efccc37d832849ee0d9cf7299ee377fa47e364d7ecd8563b03e3ce45e9693a5dc26f4913d663e17c0f32d2bd021d725fb39fbe807b
|
7
|
+
data.tar.gz: 0d5e6c6ed78ffbf16d740baa2f770175115057e98bf9e9e7eeb46e3df161aeba6f0e9a1eb4b237494ce7c7c1ccaf18d5b016e30c73167cc0a3ef78ededb22be3
|
@@ -5,7 +5,7 @@ require 'faraday-http-cache'
|
|
5
5
|
module ActiveRecordApi
|
6
6
|
module Request
|
7
7
|
class Connection < Credentials
|
8
|
-
attr_accessor :debug, :path, :cache_store
|
8
|
+
attr_accessor :debug, :path, :cache_store, :timeout
|
9
9
|
attr_writer :full_url
|
10
10
|
|
11
11
|
def authenticated_connection
|
@@ -16,7 +16,7 @@ module ActiveRecordApi
|
|
16
16
|
def connection
|
17
17
|
@connection ||= Faraday.new do |builder|
|
18
18
|
builder.options[:open_timeout] = 2
|
19
|
-
builder.options[:timeout] = 5
|
19
|
+
builder.options[:timeout] = timeout || 5
|
20
20
|
builder.request :json
|
21
21
|
builder.request :url_encoded
|
22
22
|
builder.request :retry, max: 5, interval: 0.05, interval_randomness: 0.5, backoff_factor: 2, exceptions: [ActiveRecordApi::Request::AuthError]
|
@@ -3,7 +3,7 @@ module ActiveRecordApi
|
|
3
3
|
module Request
|
4
4
|
class TokenCache
|
5
5
|
include ActiveAttr::Model
|
6
|
-
attr_accessor
|
6
|
+
attr_accessor :debug
|
7
7
|
|
8
8
|
def flush
|
9
9
|
return unless defined? AUTH_REDIS_POOL
|
@@ -25,7 +25,7 @@ module ActiveRecordApi
|
|
25
25
|
unless defined? AUTH_REDIS_POOL
|
26
26
|
debug_log 'no auth redis pool. getting new token'
|
27
27
|
token = token_proc.call
|
28
|
-
raise "no token returned! #{token}" if
|
28
|
+
raise "no token returned! #{token}" if token.nil?
|
29
29
|
return token
|
30
30
|
end
|
31
31
|
AUTH_REDIS_POOL.with do |client|
|
@@ -33,14 +33,14 @@ module ActiveRecordApi
|
|
33
33
|
@token = nil
|
34
34
|
@retry = 0
|
35
35
|
while @token.nil? && @retry < 5
|
36
|
-
@retry += 1
|
37
36
|
@token = @redis_client.get('auth_token')
|
38
37
|
debug_log "retry ##{@retry}"
|
39
38
|
debug_log "found token: #{@token}"
|
39
|
+
@retry += 1
|
40
40
|
if @token.nil? || session_missing_for?(@token)
|
41
41
|
if acquire_lock
|
42
42
|
begin
|
43
|
-
debug_log
|
43
|
+
debug_log 'acquired lock and fetching token for cache'
|
44
44
|
@token = token_proc.call
|
45
45
|
raise "no token returned! #{@token}" if @token.nil?
|
46
46
|
@redis_client.set 'auth_token', @token
|
@@ -70,7 +70,7 @@ module ActiveRecordApi
|
|
70
70
|
return nil
|
71
71
|
end
|
72
72
|
|
73
|
-
@redis_session ||= Redis.new({url: "redis://#{ENV['REDIS_SESSION_HOST']}", db: ENV['REDIS_SESSION']})
|
73
|
+
@redis_session ||= Redis.new({ url: "redis://#{ENV['REDIS_SESSION_HOST']}", db: ENV['REDIS_SESSION'] })
|
74
74
|
end
|
75
75
|
|
76
76
|
def session_missing_for?(token)
|
@@ -86,7 +86,7 @@ module ActiveRecordApi
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def acquire_lock
|
89
|
-
@redis_client.set 'auth_token_lock', unique_key, nx: true, ex:
|
89
|
+
@redis_client.set 'auth_token_lock', unique_key, nx: true, ex: 8
|
90
90
|
current_lock_value = @redis_client.get 'auth_token_lock'
|
91
91
|
debug_log "#{current_lock_value} == #{unique_key}"
|
92
92
|
current_lock_value == unique_key
|
@@ -102,4 +102,5 @@ module ActiveRecordApi
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
end
|
105
|
+
|
105
106
|
#:nocov:#
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_record_api-request
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Full Measure Education
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active_attr
|