ibanity 1.10.0 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -1
- data/README.md +11 -0
- data/lib/ibanity/api/base_resource.rb +2 -2
- data/lib/ibanity/api/isabel_connect/token.rb +19 -12
- data/lib/ibanity/api/ponto_connect/transaction.rb +9 -2
- data/lib/ibanity/api/xs2a/synchronization.rb +7 -0
- data/lib/ibanity/client.rb +9 -5
- data/lib/ibanity/version.rb +1 -1
- data/lib/ibanity.rb +2 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc779e16b7658943269fa2f63e2682dc34ab7050bf2751dcdcfd10200b30b206
|
4
|
+
data.tar.gz: 92a9a49ddb5afddca15232d9e49690beaa209aba8c1c5957013bcf39a9a06f0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b64cd808868849afae6727dc0c6f2717840da42b875d8d033efacf46fdff5124792e5828fd4a9b7e9d5bd3979ecce12e5d93dd12df62282625db704466d2f4f0
|
7
|
+
data.tar.gz: 91267c064ce5bc62b438c422a258cc7c18186c3a035867b2734a756365bf6a65abd9ef2f4648815bc1e53b5c2c7ddd44b9bec06786ce83c029906c730df7af77
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,21 @@
|
|
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
|
+
|
12
|
+
## 1.11
|
13
|
+
|
14
|
+
* Allow to tweak RestClient's timeout.
|
15
|
+
|
3
16
|
## 1.10
|
4
17
|
|
5
|
-
* [Ponto Connect] Add support for payment activation requests
|
18
|
+
* [Ponto Connect] Add support for payment activation requests.
|
6
19
|
|
7
20
|
* [Webhooks] Add support for webhook signature validation, keys endpoint, and events.
|
8
21
|
|
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).
|
@@ -130,8 +130,8 @@ module Ibanity
|
|
130
130
|
resource = relationship.dig("links", "meta", "type")
|
131
131
|
klass = relationship_klass(resource)
|
132
132
|
method_name = Ibanity::Util.underscore(key)
|
133
|
-
define_singleton_method(method_name) do |headers: nil|
|
134
|
-
klass.list_by_uri(uri: url, headers: headers, customer_access_token: customer_access_token)
|
133
|
+
define_singleton_method(method_name) do |headers: nil, **query_params|
|
134
|
+
klass.list_by_uri(uri: url, headers: headers, query_params: query_params, customer_access_token: customer_access_token)
|
135
135
|
end
|
136
136
|
else
|
137
137
|
resource = key
|
@@ -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
|
-
|
24
|
-
|
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(
|
27
|
+
def self.delete(refresh_token:)
|
28
28
|
uri = Ibanity.isabel_connect_api_schema["oAuth2"]["revoke"]
|
29
29
|
arguments = [
|
30
|
-
["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
|
5
|
-
uri =
|
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
|
|
@@ -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}", "")
|
data/lib/ibanity/client.rb
CHANGED
@@ -14,12 +14,14 @@ 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:
|
18
|
-
isabel_connect_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,
|
22
|
-
debug_http_requests: false
|
22
|
+
debug_http_requests: false,
|
23
|
+
timeout: 60
|
24
|
+
)
|
23
25
|
@isabel_connect_client_id = isabel_connect_client_id
|
24
26
|
@isabel_connect_client_secret = isabel_connect_client_secret
|
25
27
|
@ponto_connect_client_id = ponto_connect_client_id
|
@@ -35,6 +37,7 @@ module Ibanity
|
|
35
37
|
@base_uri = "#{api_scheme}://#{api_host}"
|
36
38
|
@ssl_ca_file = ssl_ca_file
|
37
39
|
@application_id = application_id
|
40
|
+
@timeout = timeout
|
38
41
|
end
|
39
42
|
|
40
43
|
def get(uri:, query_params: {}, customer_access_token: nil, headers: nil, json: true)
|
@@ -94,7 +97,8 @@ module Ibanity
|
|
94
97
|
payload: payload,
|
95
98
|
ssl_client_cert: @certificate,
|
96
99
|
ssl_client_key: @key,
|
97
|
-
ssl_ca_file: @ssl_ca_file
|
100
|
+
ssl_ca_file: @ssl_ca_file,
|
101
|
+
timeout: @timeout
|
98
102
|
}
|
99
103
|
|
100
104
|
log("HTTP Request", query) if @http_debug
|
@@ -120,7 +124,7 @@ module Ibanity
|
|
120
124
|
|
121
125
|
def build_headers(customer_access_token: nil, idempotency_key: nil, extra_headers: nil, json:, payload: nil)
|
122
126
|
headers = {
|
123
|
-
accept: :json
|
127
|
+
accept: :json
|
124
128
|
}
|
125
129
|
headers["Transfer-Encoding"] = "chunked" if payload.is_a?(Pathname)
|
126
130
|
headers[:content_type] = :json if json
|
data/lib/ibanity/version.rb
CHANGED
data/lib/ibanity.rb
CHANGED
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:
|
4
|
+
version: 2.0.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-
|
11
|
+
date: 2022-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|