treezor_connect 0.22.0 → 0.23.0

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: af881cf032f896376706c821ec29e3a7a9d2c41b1720e474ff609d3edcefe01d
4
- data.tar.gz: 00f85ff778af5d215a42ce9ebece82db614a0fc3826a29a9b5412560dd7bf038
3
+ metadata.gz: 9853144e2f1a2e86103752fae6340f674ecd3f4c25e38f32cad3f326a0021c63
4
+ data.tar.gz: 932fd89d512e1eeb940ef10870a5938843e3c9129c9b6f2c0bfa0387dbbe20f6
5
5
  SHA512:
6
- metadata.gz: 6895c953b9a931be42a543bd3ff53c841621899a3e2ec071d7443a9ebc2925a3b3f339e738a83e67dd4e907456dc8438e441c280fb9db85bd121df14b775d7c7
7
- data.tar.gz: 45a00902e1468f9dbab98c926a91cd5fe2402cc96b935b729828715745c57c7adf408006bb2ee6bf529946107ae1fd55777fa217e8fc629a21e79f7ccc7d91e0
6
+ metadata.gz: 208436fb13bdd61369741a1ce577a6dc798c47ab48467676b2cdb9e80c04bf9e859054e00fbd3f0436a9ed8b88b2c2ccdc8a488bc9baf30f7f04a88749f3f2de
7
+ data.tar.gz: d630695ec6682459dacaf7bdb67c13699f1ba039248d173433a3908637984356c246e5db0c74db6c848a1cc5d6908df4e0dbed0e6dc6e0b0cf8193f8892a726e
@@ -3,15 +3,10 @@
3
3
  module TreezorConnect
4
4
  module ApiOperations
5
5
  module Create
6
+ include CreateOperation
7
+
6
8
  def create(params = {}, access_token = nil)
7
- treezor_response = request(:post, resource_url, params: { body: params }, access_token:)
8
- data = extract_response_data(treezor_response, extract_all_objects: false)
9
- Util.convert_to_treezor_object(data, { object_class: self::OBJECT_NAME })
10
- rescue AlreadyCreatedError => e
11
- data = extract_response_data(e.treezor_response, extract_all_objects: false)
12
- e.treezor_response = nil
13
- e.object = Util.convert_to_treezor_object(data, { object_class: self::OBJECT_NAME })
14
- raise
9
+ perform_create(resource_url, params, access_token)
15
10
  end
16
11
  end
17
12
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TreezorConnect
4
+ module ApiOperations
5
+ module CreateOperation
6
+ def perform_create(url, params, access_token)
7
+ response = request(:post, url, params: { body: params }, access_token:)
8
+ build_object_from_response(response)
9
+ rescue AlreadyCreatedError => e
10
+ e.object = build_object_from_response(e.treezor_response)
11
+ e.treezor_response = nil
12
+ raise
13
+ end
14
+
15
+ def build_object_from_response(response)
16
+ data = extract_response_data(response, extract_all_objects: false)
17
+ Util.convert_to_treezor_object(data, { object_class: self::OBJECT_NAME })
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TreezorConnect
4
+ module ApiOperations
5
+ module NestedCreate
6
+ include CreateOperation
7
+
8
+ def create(parent_id, params = {}, access_token = nil)
9
+ perform_create(resource_url(parent_id), params, access_token)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TreezorConnect
4
+ module ApiOperations
5
+ module NestedDelete
6
+ def delete(parent_id, id, access_token = nil)
7
+ url = [resource_url(parent_id), id].join('/')
8
+ treezor_response = request(:delete, url, access_token:)
9
+ data = extract_response_data(treezor_response, extract_all_objects: false)
10
+ Util.convert_to_treezor_object(data, { object_class: self::OBJECT_NAME })
11
+ end
12
+ end
13
+ end
14
+ end
@@ -5,7 +5,7 @@ module TreezorConnect
5
5
  attr_reader :access_token
6
6
 
7
7
  def initialize(access_token)
8
- @access_token = access_token.nil? ? default_access_token : access_token
8
+ @access_token = access_token || default_access_token
9
9
  @conn = Faraday.new(
10
10
  url: TreezorConnect.api_base_url,
11
11
  headers: { 'Authorization' => "Bearer #{@access_token}" },
@@ -107,19 +107,20 @@ module TreezorConnect
107
107
 
108
108
  decoded_token = JWT.decode(current_access_token, nil, false).first
109
109
  decoded_token['exp'] < Time.now.to_i
110
+ rescue JWT::DecodeError
111
+ true
110
112
  end
111
113
 
112
114
  def default_access_token
113
- if current_access_token_expired?
114
- access_token = fetch_access_token
115
- Thread.current[:treezor_default_access_token] = access_token if ENV['SKIP_ACCESS_TOKEN_IN_THREAD'].nil?
116
- else
117
- current_access_token
118
- end
115
+ return current_access_token unless current_access_token_expired?
116
+
117
+ token = fetch_access_token
118
+ Thread.current[:treezor_default_access_token] = token if ENV['SKIP_ACCESS_TOKEN_IN_THREAD'].nil?
119
+ token
119
120
  end
120
121
 
121
122
  def current_access_token
122
- @current_access_token ||= Thread.current[:treezor_default_access_token]
123
+ Thread.current[:treezor_default_access_token]
123
124
  end
124
125
  end
125
126
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ module TreezorConnect
4
+ class User
5
+ class Relationship < ApiResource
6
+ extend TreezorConnect::ApiOperations::NestedCreate
7
+ extend TreezorConnect::ApiOperations::NestedDelete
8
+
9
+ OBJECT_NAME = 'user/relationship'
10
+ OBJECT_PRIMARY_KEY = 'relationshipId'
11
+
12
+ def self.resource_url(user_id)
13
+ "/v1/users/#{user_id}/relationships"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -10,6 +10,7 @@ require 'treezor_connect/resources/payin'
10
10
  require 'treezor_connect/resources/payout'
11
11
  require 'treezor_connect/resources/tax_residence'
12
12
  require 'treezor_connect/resources/user'
13
+ require 'treezor_connect/resources/user/relationship'
13
14
  require 'treezor_connect/resources/oauth/token'
14
15
  require 'treezor_connect/resources/sca/external_operation'
15
16
  require 'treezor_connect/resources/sca/passcode'
@@ -19,11 +19,14 @@ require 'treezor_connect/errors'
19
19
  # API operations
20
20
  require 'treezor_connect/api_operations/fetch'
21
21
  require 'treezor_connect/api_operations/list'
22
+ require 'treezor_connect/api_operations/create_operation'
22
23
  require 'treezor_connect/api_operations/create'
24
+ require 'treezor_connect/api_operations/nested_create'
23
25
  require 'treezor_connect/api_operations/bulk_create'
24
26
  require 'treezor_connect/api_operations/request'
25
27
  require 'treezor_connect/api_operations/update'
26
28
  require 'treezor_connect/api_operations/delete'
29
+ require 'treezor_connect/api_operations/nested_delete'
27
30
 
28
31
  # API resources
29
32
  require 'treezor_connect/api_resource'
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treezor_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.22.0
4
+ version: 0.23.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - stefakins
8
8
  - jbauzone
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2026-06-10 00:00:00.000000000 Z
12
+ date: 2026-06-16 00:00:00.000000000 Z
12
13
  dependencies: []
13
14
  description: A gem for making HTTP calls to Treezor Connect.
14
15
  email: stefan.atkinson69@gmail.com
@@ -19,9 +20,12 @@ files:
19
20
  - lib/treezor_connect.rb
20
21
  - lib/treezor_connect/api_operations/bulk_create.rb
21
22
  - lib/treezor_connect/api_operations/create.rb
23
+ - lib/treezor_connect/api_operations/create_operation.rb
22
24
  - lib/treezor_connect/api_operations/delete.rb
23
25
  - lib/treezor_connect/api_operations/fetch.rb
24
26
  - lib/treezor_connect/api_operations/list.rb
27
+ - lib/treezor_connect/api_operations/nested_create.rb
28
+ - lib/treezor_connect/api_operations/nested_delete.rb
25
29
  - lib/treezor_connect/api_operations/request.rb
26
30
  - lib/treezor_connect/api_operations/update.rb
27
31
  - lib/treezor_connect/api_resource.rb
@@ -44,6 +48,7 @@ files:
44
48
  - lib/treezor_connect/resources/sct_inst/recall.rb
45
49
  - lib/treezor_connect/resources/tax_residence.rb
46
50
  - lib/treezor_connect/resources/user.rb
51
+ - lib/treezor_connect/resources/user/relationship.rb
47
52
  - lib/treezor_connect/treezor_object.rb
48
53
  - lib/treezor_connect/treezor_response.rb
49
54
  - lib/treezor_connect/util.rb
@@ -52,6 +57,7 @@ licenses:
52
57
  - MIT
53
58
  metadata:
54
59
  rubygems_mfa_required: 'true'
60
+ post_install_message:
55
61
  rdoc_options: []
56
62
  require_paths:
57
63
  - lib
@@ -66,7 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
66
72
  - !ruby/object:Gem::Version
67
73
  version: '0'
68
74
  requirements: []
69
- rubygems_version: 3.6.5
75
+ rubygems_version: 3.4.19
76
+ signing_key:
70
77
  specification_version: 4
71
78
  summary: A gem for making HTTP calls to Treezor Connect.
72
79
  test_files: []