treezor_connect 0.14.0 → 0.14.1

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/treezor_connect/client.rb +16 -7
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: be8521db96d02266f7a596240f39cc17d8741613f004908be4be1e9a13bf3e4b
4
- data.tar.gz: 3c6b31cfa4998d21f4d391d4881105e8af007c3856333a18f342bf74ebb5a8d5
3
+ metadata.gz: 06ec341cb21c6dffd02522ddfcc8ab8a7f759f1641469f7fd4dfb6a4de4421fb
4
+ data.tar.gz: 263a543c21fb77cbd8e32797a72393c852fe2b3d21e51a83fc8a08f60fd232a8
5
5
  SHA512:
6
- metadata.gz: 1ea75968193a6c2d07d40b70eab44b2667d07a39a7370d70d798278a215b1a6e36bed58052634387b3d2204419972aef127b3c8f33e63a4caf8fb80f0d722690
7
- data.tar.gz: eb4320448da51e60b853d5e4a9ca5d94412933db2ab9d0f39602e63b4867755b654fcce31773ce66cdf5c01baaf6c08e7d9d1d30f7307f3a11a22ea0d695e270
6
+ metadata.gz: c4690c7065408ee2157e7dd7ef76f91278dd00f85def634c06603915b897f6f7c115720daa7adfd82ba9662f787463a980eaed430d722e223bbc63ec22c73ed0
7
+ data.tar.gz: 58e9db3fddae81d7e8cab0337a99e06045ccca0f07a5c3a6c1a5892cdcf7ce3b8695e603e2a3d3a0211942c49fa26aec4f50503a315bd28c9d13ea3a9e94a3bd
@@ -2,6 +2,8 @@
2
2
 
3
3
  module TreezorConnect
4
4
  class Client
5
+ attr_reader :access_token
6
+
5
7
  def initialize(access_token)
6
8
  @conn = build_default_conn
7
9
  @access_token = access_token.nil? ? default_access_token : access_token
@@ -19,7 +21,7 @@ module TreezorConnect
19
21
 
20
22
  private
21
23
 
22
- attr_reader :conn, :access_token
24
+ attr_reader :conn
23
25
 
24
26
  def build_default_conn
25
27
  http = HTTP.persistent(TreezorConnect.api_base_url)
@@ -48,17 +50,24 @@ module TreezorConnect
48
50
  )
49
51
  end
50
52
 
51
- def token_expired?(token)
52
- OAuth2::AccessToken.new(conn, token).expired?
53
+ def current_access_token_expired?
54
+ return true if current_access_token.nil?
55
+
56
+ decoded_token = JWT.decode(current_access_token, nil, false).first
57
+ decoded_token['exp'] < Time.now.to_i
53
58
  end
54
59
 
55
60
  def default_access_token
56
- access_token = Thread.current[:treezor_default_access_token]
57
- if access_token.nil? || token_expired?(access_token)
58
- Thread.current[:treezor_default_access_token] = fetch_access_token
61
+ if current_access_token_expired?
62
+ access_token = fetch_access_token
63
+ Thread.current[:treezor_default_access_token] = access_token if ENV['SKIP_ACCESS_TOKEN_IN_THREAD'].nil?
59
64
  else
60
- access_token
65
+ current_access_token
61
66
  end
62
67
  end
68
+
69
+ def current_access_token
70
+ @current_access_token ||= Thread.current[:treezor_default_access_token]
71
+ end
63
72
  end
64
73
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treezor_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - stefakins
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-12-10 00:00:00.000000000 Z
12
+ date: 2024-12-17 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: A gem for making HTTP calls to Treezor Connect.
15
15
  email: stefan.atkinson69@gmail.com