active_record_api-request 0.3.13 → 0.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
|