ibanity 0.5 → 1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +5 -5
  2. data/.rspec +1 -0
  3. data/.travis.yml +20 -0
  4. data/CHANGELOG.md +20 -0
  5. data/README.md +2 -0
  6. data/ibanity.gemspec +1 -2
  7. data/lib/ibanity.rb +68 -14
  8. data/lib/ibanity/api/base_resource.rb +45 -15
  9. data/lib/ibanity/api/consent/consent.rb +41 -0
  10. data/lib/ibanity/api/consent/processing_operation.rb +37 -0
  11. data/lib/ibanity/api/isabel_connect/access_token.rb +17 -0
  12. data/lib/ibanity/api/isabel_connect/account.rb +15 -0
  13. data/lib/ibanity/api/isabel_connect/account_report.rb +15 -0
  14. data/lib/ibanity/api/isabel_connect/balance.rb +11 -0
  15. data/lib/ibanity/api/isabel_connect/bulk_payment_initiation_request.rb +25 -0
  16. data/lib/ibanity/api/isabel_connect/intraday_transaction.rb +10 -0
  17. data/lib/ibanity/api/isabel_connect/refresh_token.rb +29 -0
  18. data/lib/ibanity/api/isabel_connect/transaction.rb +10 -0
  19. data/lib/ibanity/api/o_auth_resource.rb +19 -0
  20. data/lib/ibanity/api/ponto_connect/account.rb +15 -0
  21. data/lib/ibanity/api/ponto_connect/financial_institution.rb +15 -0
  22. data/lib/ibanity/api/ponto_connect/payment.rb +20 -0
  23. data/lib/ibanity/api/ponto_connect/sandbox/financial_institution_account.rb +21 -0
  24. data/lib/ibanity/api/ponto_connect/sandbox/financial_institution_transaction.rb +31 -0
  25. data/lib/ibanity/api/ponto_connect/synchronization.rb +15 -0
  26. data/lib/ibanity/api/ponto_connect/token.rb +53 -0
  27. data/lib/ibanity/api/ponto_connect/transaction.rb +15 -0
  28. data/lib/ibanity/api/ponto_connect/usage.rb +10 -0
  29. data/lib/ibanity/api/ponto_connect/user_info.rb +10 -0
  30. data/lib/ibanity/api/sandbox/financial_institution_account.rb +41 -0
  31. data/lib/ibanity/api/sandbox/financial_institution_holding.rb +45 -0
  32. data/lib/ibanity/api/sandbox/financial_institution_transaction.rb +45 -0
  33. data/lib/ibanity/api/sandbox/financial_institution_user.rb +32 -0
  34. data/lib/ibanity/api/xs2a/account.rb +33 -0
  35. data/lib/ibanity/api/xs2a/account_information_access_request.rb +27 -0
  36. data/lib/ibanity/api/xs2a/account_information_access_request_authorization.rb +21 -0
  37. data/lib/ibanity/api/xs2a/bulk_payment_initiation_request.rb +33 -0
  38. data/lib/ibanity/api/xs2a/customer.rb +10 -0
  39. data/lib/ibanity/api/xs2a/customer_access_token.rb +11 -0
  40. data/lib/ibanity/api/xs2a/financial_institution.rb +36 -0
  41. data/lib/ibanity/api/xs2a/holding.rb +21 -0
  42. data/lib/ibanity/api/xs2a/payment_initiation_request.rb +33 -0
  43. data/lib/ibanity/api/xs2a/payment_initiation_request_authorization.rb +21 -0
  44. data/lib/ibanity/api/xs2a/periodic_payment_initiation_request.rb +33 -0
  45. data/lib/ibanity/api/xs2a/synchronization.rb +17 -0
  46. data/lib/ibanity/api/xs2a/transaction.rb +21 -0
  47. data/lib/ibanity/client.rb +41 -30
  48. data/lib/ibanity/collection.rb +47 -0
  49. data/lib/ibanity/error.rb +9 -5
  50. data/lib/ibanity/http_signature.rb +4 -2
  51. data/lib/ibanity/util.rb +11 -4
  52. data/lib/ibanity/version.rb +1 -1
  53. data/spec/lib/ibanity/util_spec.rb +89 -0
  54. data/spec/spec_helper.rb +100 -0
  55. metadata +52 -30
  56. data/lib/ibanity/api/account.rb +0 -20
  57. data/lib/ibanity/api/account_information_access_request.rb +0 -17
  58. data/lib/ibanity/api/customer_access_token.rb +0 -9
  59. data/lib/ibanity/api/financial_institution.rb +0 -30
  60. data/lib/ibanity/api/financial_institution_account.rb +0 -39
  61. data/lib/ibanity/api/financial_institution_transaction.rb +0 -43
  62. data/lib/ibanity/api/financial_institution_user.rb +0 -30
  63. data/lib/ibanity/api/payment_initiation_request.rb +0 -24
  64. data/lib/ibanity/api/transaction.rb +0 -19
@@ -0,0 +1,25 @@
1
+ module Ibanity
2
+ module IsabelConnect
3
+ class BulkPaymentInitiationRequest < Ibanity::BaseResource
4
+ def self.create(access_token:, raw_content:, filename:, idempotency_key: nil)
5
+ uri = Ibanity.isabel_connect_api_schema["bulkPaymentInitiationRequests"].sub("{bulkPaymentInitiationRequestId}", "")
6
+ create_file_by_uri(
7
+ uri: uri,
8
+ resource_type: "bulkPaymentInitiationRequest",
9
+ raw_content: raw_content,
10
+ customer_access_token: access_token,
11
+ idempotency_key: idempotency_key,
12
+ headers: {
13
+ content_type: :xml,
14
+ "Content-Disposition": "inline; filename=#{filename}"
15
+ }
16
+ )
17
+ end
18
+
19
+ def self.find(id:, access_token:)
20
+ uri = Ibanity.isabel_connect_api_schema["bulkPaymentInitiationRequests"].sub("{bulkPaymentInitiationRequestId}", id)
21
+ find_by_uri(uri: uri, customer_access_token: access_token)
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,10 @@
1
+ module Ibanity
2
+ module IsabelConnect
3
+ class IntradayTransaction < Ibanity::BaseResource
4
+ def self.list(account_id:, access_token:, headers: nil, **query_params)
5
+ uri = Ibanity.isabel_connect_api_schema["account"]["intradayTransactions"].sub("{accountId}", account_id)
6
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token, headers: headers)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,29 @@
1
+ module Ibanity
2
+ module IsabelConnect
3
+ class RefreshToken < Ibanity::OAuthResource
4
+ def self.create(authorization_code:, redirect_uri:, idempotency_key: nil)
5
+ uri = Ibanity.isabel_connect_api_schema["oAuth2"]["refreshTokens"]["create"]
6
+ arguments = [
7
+ ["grant_type", "authorization_code"],
8
+ ["code", authorization_code],
9
+ ["client_id", Ibanity.client.isabel_connect_client_id],
10
+ ["client_secret", Ibanity.client.isabel_connect_client_secret],
11
+ ["redirect_uri", redirect_uri]
12
+ ]
13
+ payload = URI.encode_www_form(arguments)
14
+ create_by_uri(uri: uri, payload: payload, idempotency_key: idempotency_key)
15
+ end
16
+
17
+ def self.delete(token:)
18
+ uri = Ibanity.isabel_connect_api_schema["oAuth2"]["refreshTokens"]["revoke"]
19
+ arguments = [
20
+ ["token", token],
21
+ ["client_id", Ibanity.client.isabel_connect_client_id],
22
+ ["client_secret", Ibanity.client.isabel_connect_client_secret]
23
+ ]
24
+ payload = URI.encode_www_form(arguments)
25
+ create_by_uri(uri: uri, payload: payload)
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,10 @@
1
+ module Ibanity
2
+ module IsabelConnect
3
+ class Transaction < Ibanity::BaseResource
4
+ def self.list(account_id:, access_token:, headers: nil, **query_params)
5
+ uri = Ibanity.isabel_connect_api_schema["account"]["transactions"].sub("{accountId}", account_id)
6
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token, headers: headers)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,19 @@
1
+ module Ibanity
2
+ class OAuthResource < OpenStruct
3
+ def self.create_by_uri(uri:, payload:, idempotency_key: nil, headers: nil)
4
+ raw_item = Ibanity.client.post(uri: uri, payload: payload, json: false, idempotency_key: idempotency_key, headers: headers)
5
+ raw_item = {} if raw_item == ""
6
+ new(raw_item)
7
+ end
8
+
9
+ def self.find_by_uri(uri:, customer_access_token: nil, headers: nil)
10
+ raw_item = Ibanity.client.get(uri: uri, customer_access_token: customer_access_token, headers: headers)
11
+ raw_item = {} if raw_item == ""
12
+ new(raw_item)
13
+ end
14
+
15
+ def initialize(raw)
16
+ super(raw)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ class Account < Ibanity::BaseResource
4
+ def self.list(access_token:, **query_params)
5
+ uri = Ibanity.ponto_connect_api_schema["accounts"].sub("{accountId}", "")
6
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token)
7
+ end
8
+
9
+ def self.find(access_token:, id:)
10
+ uri = Ibanity.ponto_connect_api_schema["accounts"].sub("{accountId}", id)
11
+ find_by_uri(uri: uri, customer_access_token: access_token)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ class FinancialInstitution < Ibanity::BaseResource
4
+ def self.list(access_token: nil, **query_params)
5
+ uri = Ibanity.ponto_connect_api_schema["financialInstitutions"].sub("{financialInstitutionId}", "")
6
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token)
7
+ end
8
+
9
+ def self.find(access_token: nil, id:)
10
+ uri = Ibanity.ponto_connect_api_schema["financialInstitutions"].sub("{financialInstitutionId}", id)
11
+ find_by_uri(uri: uri, customer_access_token: access_token)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,20 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ class Payment < Ibanity::BaseResource
4
+ def self.find(access_token:, account_id:, id:)
5
+ uri = Ibanity.ponto_connect_api_schema["account"]["payments"].sub("{accountId}", account_id).sub("{paymentId}", id)
6
+ find_by_uri(uri: uri, customer_access_token: access_token)
7
+ end
8
+
9
+ def self.create(account_id:, access_token: nil, **attributes)
10
+ uri = Ibanity.ponto_connect_api_schema["account"]["payments"].gsub("{accountId}", account_id).gsub("{paymentId}", "")
11
+ create_by_uri(uri: uri, resource_type: "payment", attributes: attributes, customer_access_token: access_token)
12
+ end
13
+
14
+ def self.delete(id:, account_id:, access_token:)
15
+ uri = Ibanity.ponto_connect_api_schema["account"]["payments"].gsub("{accountId}", account_id).gsub("{paymentId}", id)
16
+ destroy_by_uri(uri: uri, customer_access_token: access_token)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,21 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ module Sandbox
4
+ class FinancialInstitutionAccount < Ibanity::BaseResource
5
+ def self.list(access_token:, financial_institution_id:, **query_params)
6
+ uri = Ibanity.ponto_connect_api_schema["sandbox"]["financialInstitution"]["financialInstitutionAccounts"]
7
+ .gsub("{financialInstitutionId}", financial_institution_id)
8
+ .gsub("{financialInstitutionAccountId}", "")
9
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token)
10
+ end
11
+
12
+ def self.find(access_token:, id:, financial_institution_id:)
13
+ uri = Ibanity.ponto_connect_api_schema["sandbox"]["financialInstitution"]["financialInstitutionAccounts"]
14
+ .gsub("{financialInstitutionId}", financial_institution_id)
15
+ .gsub("{financialInstitutionAccountId}", id)
16
+ find_by_uri(uri: uri, customer_access_token: access_token)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,31 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ module Sandbox
4
+ class FinancialInstitutionTransaction < Ibanity::BaseResource
5
+ def self.list(access_token:, financial_institution_account_id:, financial_institution_id:, **query_params)
6
+ uri = Ibanity.ponto_connect_api_schema["sandbox"]["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
7
+ .gsub("{financialInstitutionId}", financial_institution_id)
8
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
9
+ .gsub("{financialInstitutionTransactionId}", "")
10
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token)
11
+ end
12
+
13
+ def self.find(access_token:, id:, financial_institution_id:, financial_institution_account_id:)
14
+ uri = Ibanity.ponto_connect_api_schema["sandbox"]["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
15
+ .gsub("{financialInstitutionId}", financial_institution_id)
16
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
17
+ .gsub("{financialInstitutionTransactionId}", id)
18
+ find_by_uri(uri: uri, customer_access_token: access_token)
19
+ end
20
+
21
+ def self.create(access_token:, financial_institution_id:, financial_institution_account_id:, **attributes)
22
+ uri = Ibanity.ponto_connect_api_schema["sandbox"]["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
23
+ .sub("{financialInstitutionId}", financial_institution_id)
24
+ .sub("{financialInstitutionAccountId}", financial_institution_account_id)
25
+ .sub("{financialInstitutionTransactionId}", "")
26
+ create_by_uri(uri: uri, resource_type: "financialInstitutionTransaction", attributes: attributes, customer_access_token: access_token)
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,15 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ class Synchronization < Ibanity::BaseResource
4
+ def self.create(access_token:, **attributes)
5
+ uri = Ibanity.ponto_connect_api_schema["synchronizations"].sub("{synchronizationId}", "")
6
+ create_by_uri(uri: uri, resource_type: "synchronization", attributes: attributes, customer_access_token: access_token)
7
+ end
8
+
9
+ def self.find(id:, access_token:)
10
+ uri = Ibanity.ponto_connect_api_schema["synchronizations"].sub("{synchronizationId}", id)
11
+ find_by_uri(uri: uri, customer_access_token: access_token)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,53 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ class Token < Ibanity::OAuthResource
4
+ def self.create(refresh_token: nil, authorization_code: nil, redirect_uri: nil, idempotency_key: nil, code_verifier: nil)
5
+ arguments =
6
+ if refresh_token
7
+ [
8
+ ["grant_type", "refresh_token"],
9
+ ["client_id", Ibanity.client.ponto_connect_client_id],
10
+ ["refresh_token", refresh_token]
11
+ ]
12
+ elsif authorization_code
13
+ [
14
+ ["grant_type", "authorization_code"],
15
+ ["client_id", Ibanity.client.ponto_connect_client_id],
16
+ ["code", authorization_code],
17
+ ["code_verifier", code_verifier],
18
+ ["redirect_uri", redirect_uri]
19
+ ]
20
+ else
21
+ [
22
+ ["grant_type", "client_credentials"]
23
+ ]
24
+ end
25
+
26
+ create_by_uri(
27
+ uri: Ibanity.ponto_connect_api_schema["oauth2"]["token"],
28
+ payload: URI.encode_www_form(arguments),
29
+ idempotency_key: idempotency_key,
30
+ headers: self.headers
31
+ )
32
+ end
33
+
34
+ def self.delete(refresh_token:)
35
+ uri = Ibanity.ponto_connect_api_schema["oauth2"]["revoke"]
36
+ arguments = [
37
+ ["token", refresh_token]
38
+ ]
39
+ payload = URI.encode_www_form(arguments)
40
+ create_by_uri(uri: uri, payload: payload, headers: self.headers)
41
+ end
42
+
43
+ private
44
+
45
+ def self.headers
46
+ {
47
+ "Authorization": "Basic " + Base64.strict_encode64("#{Ibanity.client.ponto_connect_client_id}:#{Ibanity.client.ponto_connect_client_secret}"),
48
+ "Content-Type": "application/x-www-form-urlencoded"
49
+ }
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,15 @@
1
+ module Ibanity
2
+ module PontoConnect
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}", "")
6
+ list_by_uri(uri: uri, query_params: query_params, customer_access_token: access_token)
7
+ end
8
+
9
+ def self.find(access_token:, account_id:, id:)
10
+ uri = Ibanity.ponto_connect_api_schema["account"]["transactions"].sub("{accountId}", account_id).sub("{transactionId}", id)
11
+ find_by_uri(uri: uri, customer_access_token: access_token)
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ class Usage < Ibanity::BaseResource
4
+ def self.find(client_access_token:, organization_id:, month:)
5
+ uri = Ibanity.ponto_connect_api_schema["organizations"]["usage"].sub("{organizationId}", organization_id).sub("{month}", month)
6
+ find_by_uri(uri: uri, customer_access_token: client_access_token)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ module Ibanity
2
+ module PontoConnect
3
+ class UserInfo < Ibanity::OAuthResource
4
+ def self.find(access_token:)
5
+ uri = Ibanity.ponto_connect_api_schema["userinfo"]
6
+ find_by_uri(uri: uri, customer_access_token: access_token)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,41 @@
1
+ module Ibanity
2
+ module Sandbox
3
+ class FinancialInstitutionAccount < Ibanity::BaseResource
4
+ def self.create(financial_institution_user_id:, financial_institution_id:, idempotency_key: nil, **attributes)
5
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
6
+ .gsub("{financialInstitutionId}", financial_institution_id)
7
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
8
+ .gsub("{financialInstitutionAccountId}", "")
9
+ uri = Ibanity.client.build_uri(path)
10
+ create_by_uri(uri: uri, resource_type: "financialInstitutionAccount", attributes: attributes, idempotency_key: idempotency_key)
11
+ end
12
+
13
+ def self.list(financial_institution_id:, financial_institution_user_id:, **query_params)
14
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
15
+ .gsub("{financialInstitutionId}", financial_institution_id)
16
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
17
+ .gsub("{financialInstitutionAccountId}", "")
18
+ uri = Ibanity.client.build_uri(path)
19
+ list_by_uri(uri: uri, query_params: query_params)
20
+ end
21
+
22
+ def self.find(id:, financial_institution_user_id:, financial_institution_id:)
23
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
24
+ .gsub("{financialInstitutionId}", financial_institution_id)
25
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
26
+ .gsub("{financialInstitutionAccountId}", id)
27
+ uri = Ibanity.client.build_uri(path)
28
+ find_by_uri(uri: uri)
29
+ end
30
+
31
+ def self.delete(id:, financial_institution_user_id:, financial_institution_id:)
32
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccounts"]
33
+ .gsub("{financialInstitutionId}", financial_institution_id)
34
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
35
+ .gsub("{financialInstitutionAccountId}", id)
36
+ uri = Ibanity.client.build_uri(path)
37
+ destroy_by_uri(uri: uri)
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,45 @@
1
+ module Ibanity
2
+ module Sandbox
3
+ class FinancialInstitutionHolding < Ibanity::BaseResource
4
+ def self.create(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
5
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
6
+ .gsub("{financialInstitutionId}", financial_institution_id)
7
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
8
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
9
+ .gsub("{financialInstitutionHoldingId}", "")
10
+ uri = Ibanity.client.build_uri(path)
11
+ create_by_uri(uri: uri, resource_type: "financialInstitutionHolding", attributes: attributes, idempotency_key: idempotency_key)
12
+ end
13
+
14
+ def self.list(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, **query_params)
15
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
16
+ .gsub("{financialInstitutionId}", financial_institution_id)
17
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
18
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
19
+ .gsub("{financialInstitutionHoldingId}", "")
20
+ uri = Ibanity.client.build_uri(path)
21
+ list_by_uri(uri: uri, query_params: query_params)
22
+ end
23
+
24
+ def self.find(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
25
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
26
+ .gsub("{financialInstitutionId}", financial_institution_id)
27
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
28
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
29
+ .gsub("{financialInstitutionHoldingId}", id)
30
+ uri = Ibanity.client.build_uri(path)
31
+ find_by_uri(uri: uri)
32
+ end
33
+
34
+ def self.delete(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
35
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionHoldings"]
36
+ .gsub("{financialInstitutionId}", financial_institution_id)
37
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
38
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
39
+ .gsub("{financialInstitutionHoldingId}", id)
40
+ uri = Ibanity.client.build_uri(path)
41
+ destroy_by_uri(uri: uri)
42
+ end
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,45 @@
1
+ module Ibanity
2
+ module Sandbox
3
+ class FinancialInstitutionTransaction < Ibanity::BaseResource
4
+ def self.create(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, idempotency_key: nil, **attributes)
5
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
6
+ .gsub("{financialInstitutionId}", financial_institution_id)
7
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
8
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
9
+ .gsub("{financialInstitutionTransactionId}", "")
10
+ uri = Ibanity.client.build_uri(path)
11
+ create_by_uri(uri: uri, resource_type: "financialInstitutionTransaction", attributes: attributes, idempotency_key: idempotency_key)
12
+ end
13
+
14
+ def self.list(financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:, **query_params)
15
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
16
+ .gsub("{financialInstitutionId}", financial_institution_id)
17
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
18
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
19
+ .gsub("{financialInstitutionTransactionId}", "")
20
+ uri = Ibanity.client.build_uri(path)
21
+ list_by_uri(uri: uri, query_params: query_params)
22
+ end
23
+
24
+ def self.find(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
25
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
26
+ .gsub("{financialInstitutionId}", financial_institution_id)
27
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
28
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
29
+ .gsub("{financialInstitutionTransactionId}", id)
30
+ uri = Ibanity.client.build_uri(path)
31
+ find_by_uri(uri: uri)
32
+ end
33
+
34
+ def self.delete(id:, financial_institution_user_id:, financial_institution_id:, financial_institution_account_id:)
35
+ path = Ibanity.sandbox_api_schema["financialInstitution"]["financialInstitutionAccount"]["financialInstitutionTransactions"]
36
+ .gsub("{financialInstitutionId}", financial_institution_id)
37
+ .gsub("{financialInstitutionUserId}", financial_institution_user_id)
38
+ .gsub("{financialInstitutionAccountId}", financial_institution_account_id)
39
+ .gsub("{financialInstitutionTransactionId}", id)
40
+ uri = Ibanity.client.build_uri(path)
41
+ destroy_by_uri(uri: uri)
42
+ end
43
+ end
44
+ end
45
+ end