ibanity 1.11.0 → 2.1

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: f0b9e9d3d5bd37f738613c1e77292d6cee3fcbf5016d3d5200d7f4715d673735
4
- data.tar.gz: a757cd1e70e6588174e56de7584d10f04b1b2023c6cf9e0c02e5377c8b6a226b
3
+ metadata.gz: 59f060ed094bbff1d7a79f5ea21d599cf39111d6644608d4d9b42e95c8e77a08
4
+ data.tar.gz: b11d881bf89f5962a3f828a873775451553822f53e474b081df0412ac9c9e192
5
5
  SHA512:
6
- metadata.gz: 6c9b41e71c94eac22e8416d5689bb1c02c6cee7c1ba73a0fad1da4d6154a3bd18e7ae16baf154b3e5d881a72e18d77e991580f3dd3486ceb5a5fa157b1b652cd
7
- data.tar.gz: 6fbd44ba0f4d06bb8e890728311bdf8f28e00008688f6d9005e9da6c55377e98644f1e0d8890543a69de7884a83ed6cfabe1e97f01cf381067ad84a801878bd6
6
+ metadata.gz: e2b5e2abf5045cdcf759c2786cfe63fe791d81a8bfdd69369244ccc907a640b1da31ce634c1c37da0482a03dc56adaf351f0a3bb1e87b6da56a28c1cf65d9ec5
7
+ data.tar.gz: 32548ddeb96f04708550acdbf8dae1a46ec26ad3b317be70bb9d78cb752e74ab053e5fe52cfe3f5822a2d9a5494fd496838e3c26de7c24ac060b5a376cf90dca
data/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.1
4
+
5
+ * [Ponto Connect] Fix UpdatedTransactions relationship parsing for synchronization
6
+ * [XS2A] Fix initialAccountTransactionsSynchronizations relationship parsing for accountInformationAccessRequest
7
+
8
+ ## 2.0
9
+
10
+ * [Isabel Connect] Upgrade to version 2 of the API.
11
+
3
12
  ## 1.11
4
13
 
5
14
  * Allow to tweak RestClient's timeout.
data/README.md CHANGED
@@ -4,6 +4,17 @@
4
4
 
5
5
  The Ibanity Ruby Library provides convenient wrappers around the Ibanity API. The object attributes are dynamically defined based on the API response, supporting minor API changes seamlessly.
6
6
 
7
+ Supported API version per product:
8
+
9
+ Product | Version
10
+ -- | --
11
+ XS2A | 1
12
+ Ponto Connect | 1
13
+ Isabel Connect | 2
14
+ Consent | 1
15
+
16
+ In case you need to connect to an older version of an API, please consult `CHANGELOG.md` for more info on which version of the gem supports which version of the API.
17
+
7
18
  ## Documentation
8
19
 
9
20
  Visit our [Ruby API docs](https://documentation.ibanity.com/api/ruby).
@@ -7,32 +7,39 @@ module Ibanity
7
7
  if refresh_token
8
8
  [
9
9
  ["grant_type", "refresh_token"],
10
- ["refresh_token", refresh_token],
11
- ["client_id", Ibanity.client.isabel_connect_client_id],
12
- ["client_secret", Ibanity.client.isabel_connect_client_secret]
10
+ ["refresh_token", refresh_token]
13
11
  ]
14
12
  elsif authorization_code
15
13
  [
16
14
  ["grant_type", "authorization_code"],
17
15
  ["code", authorization_code],
18
- ["client_id", Ibanity.client.isabel_connect_client_id],
19
- ["client_secret", Ibanity.client.isabel_connect_client_secret],
20
16
  ["redirect_uri", redirect_uri]
21
17
  ]
22
18
  end
23
- payload = URI.encode_www_form(arguments)
24
- create_by_uri(uri: uri, payload: payload, idempotency_key: idempotency_key)
19
+ create_by_uri(
20
+ uri: uri,
21
+ payload: URI.encode_www_form(arguments),
22
+ idempotency_key: idempotency_key,
23
+ headers: self.headers
24
+ )
25
25
  end
26
26
 
27
- def self.delete(token:)
27
+ def self.delete(refresh_token:)
28
28
  uri = Ibanity.isabel_connect_api_schema["oAuth2"]["revoke"]
29
29
  arguments = [
30
- ["token", token],
31
- ["client_id", Ibanity.client.isabel_connect_client_id],
32
- ["client_secret", Ibanity.client.isabel_connect_client_secret]
30
+ ["token", refresh_token]
33
31
  ]
34
32
  payload = URI.encode_www_form(arguments)
35
- create_by_uri(uri: uri, payload: payload)
33
+ create_by_uri(uri: uri, payload: payload, headers: self.headers)
34
+ end
35
+
36
+ private
37
+
38
+ def self.headers
39
+ {
40
+ "Authorization": "Basic " + Base64.strict_encode64("#{Ibanity.client.isabel_connect_client_id}:#{Ibanity.client.isabel_connect_client_secret}"),
41
+ "Content-Type": "application/x-www-form-urlencoded"
42
+ }
36
43
  end
37
44
  end
38
45
  end
@@ -1,8 +1,15 @@
1
1
  module Ibanity
2
2
  module PontoConnect
3
3
  class Transaction < Ibanity::BaseResource
4
- def self.list(access_token:, account_id:, **query_params)
5
- uri = Ibanity.ponto_connect_api_schema["account"]["transactions"].sub("{accountId}", account_id).sub("{transactionId}", "")
4
+ def self.list(access_token:, account_id: nil, synchronization_id: nil, **query_params)
5
+ uri = if synchronization_id
6
+ Ibanity.ponto_connect_api_schema["synchronization"]["updatedTransactions"]
7
+ .sub("{synchronizationId}", synchronization_id)
8
+ else
9
+ Ibanity.ponto_connect_api_schema["account"]["transactions"]
10
+ .sub("{accountId}", account_id)
11
+ .sub("{transactionId}", "")
12
+ end
6
13
  list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token)
7
14
  end
8
15
 
@@ -0,0 +1,11 @@
1
+ module Ibanity
2
+ module Xs2a
3
+ class BatchSynchronization < Ibanity::BaseResource
4
+ def self.create(idempotency_key: nil, **attributes)
5
+ path = Ibanity.xs2a_api_schema["batchSynchronizations"].gsub("{batchSynchronizationId}", "")
6
+ uri = Ibanity.client.build_uri(path)
7
+ create_by_uri(uri: uri, resource_type: "batchSynchronization", attributes: attributes, idempotency_key: idempotency_key)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,21 @@
1
+ module Ibanity
2
+ module Xs2a
3
+ class BulkPaymentInitiationRequestAuthorization < Ibanity::BaseResource
4
+ def self.create(financial_institution_id:, payment_initiation_request_id:, customer_access_token:, idempotency_key: nil, meta: nil, **attributes)
5
+ path = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["bulkPaymentInitiationRequest"]["authorizations"]
6
+ .gsub("{financialInstitutionId}", financial_institution_id)
7
+ .gsub("{paymentInitiationRequestId}", payment_initiation_request_id)
8
+ .gsub("{authorizationId}", "")
9
+ uri = Ibanity.client.build_uri(path)
10
+ create_by_uri(
11
+ uri: uri,
12
+ resource_type: "authorization",
13
+ attributes: attributes,
14
+ customer_access_token: customer_access_token,
15
+ idempotency_key: idempotency_key,
16
+ meta: meta
17
+ )
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ module Ibanity
2
+ module Xs2a
3
+ class PeriodicPaymentInitiationRequestAuthorization < Ibanity::BaseResource
4
+ def self.create(financial_institution_id:, payment_initiation_request_id:, customer_access_token:, idempotency_key: nil, meta: nil, **attributes)
5
+ path = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["periodicPaymentInitiationRequest"]["authorizations"]
6
+ .gsub("{financialInstitutionId}", financial_institution_id)
7
+ .gsub("{paymentInitiationRequestId}", payment_initiation_request_id)
8
+ .gsub("{authorizationId}", "")
9
+ uri = Ibanity.client.build_uri(path)
10
+ create_by_uri(
11
+ uri: uri,
12
+ resource_type: "authorization",
13
+ attributes: attributes,
14
+ customer_access_token: customer_access_token,
15
+ idempotency_key: idempotency_key,
16
+ meta: meta
17
+ )
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,6 +1,13 @@
1
1
  module Ibanity
2
2
  module Xs2a
3
3
  class Synchronization < Ibanity::BaseResource
4
+ def self.list(financial_institution_id:, account_information_access_request_id:, customer_access_token:, headers: nil, **query_params)
5
+ uri = Ibanity.xs2a_api_schema["customer"]["financialInstitution"]["accountInformationAccessRequest"]["initialAccountTransactionsSynchronizations"]
6
+ .sub("{financialInstitutionId}", financial_institution_id)
7
+ .sub("{accountInformationAccessRequestId}", account_information_access_request_id)
8
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: customer_access_token, headers: headers)
9
+ end
10
+
4
11
  def self.create(customer_access_token:, **attributes)
5
12
  uri = Ibanity.xs2a_api_schema["customer"]["synchronizations"]
6
13
  .sub("{synchronizationId}", "")
@@ -14,8 +14,8 @@ module Ibanity
14
14
  api_scheme: "https",
15
15
  api_host: "api.ibanity.com",
16
16
  ssl_ca_file: nil,
17
- isabel_connect_client_id: "valid_client_id",
18
- isabel_connect_client_secret: "valid_client_secret",
17
+ isabel_connect_client_id: nil,
18
+ isabel_connect_client_secret: nil,
19
19
  ponto_connect_client_id: nil,
20
20
  ponto_connect_client_secret: nil,
21
21
  application_id: nil,
@@ -124,7 +124,7 @@ module Ibanity
124
124
 
125
125
  def build_headers(customer_access_token: nil, idempotency_key: nil, extra_headers: nil, json:, payload: nil)
126
126
  headers = {
127
- accept: :json,
127
+ accept: :json
128
128
  }
129
129
  headers["Transfer-Encoding"] = "chunked" if payload.is_a?(Pathname)
130
130
  headers[:content_type] = :json if json
@@ -1,3 +1,3 @@
1
1
  module Ibanity
2
- VERSION = "1.11.0"
2
+ VERSION = "2.1"
3
3
  end
data/lib/ibanity.rb CHANGED
@@ -17,6 +17,7 @@ require_relative "ibanity/webhook"
17
17
  require_relative "ibanity/api/xs2a/account"
18
18
  require_relative "ibanity/api/xs2a/transaction"
19
19
  require_relative "ibanity/api/xs2a/holding"
20
+ require_relative "ibanity/api/xs2a/batch_synchronization"
20
21
  require_relative "ibanity/api/xs2a/financial_institution"
21
22
  require_relative "ibanity/api/xs2a/financial_institution_country"
22
23
  require_relative "ibanity/api/xs2a/account_information_access_request"
@@ -26,7 +27,9 @@ require_relative "ibanity/api/xs2a/customer_access_token"
26
27
  require_relative "ibanity/api/xs2a/customer"
27
28
  require_relative "ibanity/api/xs2a/payment_initiation_request"
28
29
  require_relative "ibanity/api/xs2a/bulk_payment_initiation_request"
30
+ require_relative "ibanity/api/xs2a/bulk_payment_initiation_request_authorization"
29
31
  require_relative "ibanity/api/xs2a/periodic_payment_initiation_request"
32
+ require_relative "ibanity/api/xs2a/periodic_payment_initiation_request_authorization"
30
33
  require_relative "ibanity/api/xs2a/synchronization"
31
34
  require_relative "ibanity/api/o_auth_resource"
32
35
  require_relative "ibanity/api/isabel_connect/account"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibanity
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: '2.1'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ibanity
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-20 00:00:00.000000000 Z
11
+ date: 2022-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -110,7 +110,9 @@ files:
110
110
  - lib/ibanity/api/xs2a/account.rb
111
111
  - lib/ibanity/api/xs2a/account_information_access_request.rb
112
112
  - lib/ibanity/api/xs2a/account_information_access_request_authorization.rb
113
+ - lib/ibanity/api/xs2a/batch_synchronization.rb
113
114
  - lib/ibanity/api/xs2a/bulk_payment_initiation_request.rb
115
+ - lib/ibanity/api/xs2a/bulk_payment_initiation_request_authorization.rb
114
116
  - lib/ibanity/api/xs2a/customer.rb
115
117
  - lib/ibanity/api/xs2a/customer_access_token.rb
116
118
  - lib/ibanity/api/xs2a/financial_institution.rb
@@ -119,6 +121,7 @@ files:
119
121
  - lib/ibanity/api/xs2a/payment_initiation_request.rb
120
122
  - lib/ibanity/api/xs2a/payment_initiation_request_authorization.rb
121
123
  - lib/ibanity/api/xs2a/periodic_payment_initiation_request.rb
124
+ - lib/ibanity/api/xs2a/periodic_payment_initiation_request_authorization.rb
122
125
  - lib/ibanity/api/xs2a/synchronization.rb
123
126
  - lib/ibanity/api/xs2a/transaction.rb
124
127
  - lib/ibanity/client.rb