nordigen_ob_client 0.0.2 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/nordigen_ob_client.rb +121 -59
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 720c32a7fae42823603e24b6e1afc0122e798620d18ac41bc4685d9a5b9e024c
4
- data.tar.gz: 3e0b7ccbe0363566cada63f5e80e2d3d2895e8c7f4229117127bf4a7d7107a05
3
+ metadata.gz: 31402b13055928acda8e67cb92102f5c7537905bd3003efc7ca33519e0b1ff83
4
+ data.tar.gz: 3f8468216d6cb6947ae0f6730a380e41de7717b007cb64dc8706321e9dd87222
5
5
  SHA512:
6
- metadata.gz: becd5aec428708e1a522b4795080d6d011dc082e062c75ea2bc4916b63f732785acfae857e75fc8fb64144e2ab0a909cc636b54cf967819a36b130f1f6758e04
7
- data.tar.gz: 5dfb8555ba43701eb67187ff263df392995e51375da96d7a6e01a4f2af688cec195efcb3f524cd203cc4e1dd7c281c9ba91dae00d10aa5141fbfe1632599ce86
6
+ metadata.gz: 8e2c1c19962e6a4d911106ff67b57db74b01ee7852a6934e7d33181c2602d31aad7072d016fe0beedbdd5e364e2acfa0d6ef424317f8f1ee4bb493dc3d4f46d9
7
+ data.tar.gz: 8b9e0564a28ac0be990f2823439ecd5c96a8cd32b71f74bed545ae90ff67f03074a41a6e3c82fff09759132e3ea912ec939bc95e39b32710fefa7b0f2a366d7c
@@ -1,5 +1,4 @@
1
1
  require 'json'
2
- require 'net/http'
3
2
  require 'rest-client'
4
3
 
5
4
  class NordigenOBClient
@@ -34,6 +33,13 @@ class NordigenOBClient
34
33
  {content_type: :json, accept: :json})
35
34
  response = JSON.parse(response_json.body)
36
35
  @access_token = response["access"]
36
+
37
+ @request_header = {
38
+ content_type: :json,
39
+ accept: :json,
40
+ authorization: "Bearer #{@access_token}"
41
+ }
42
+
37
43
  @access_token
38
44
  end
39
45
 
@@ -52,15 +58,9 @@ class NordigenOBClient
52
58
  #
53
59
  #############################################################################
54
60
  def get_banks_by_country country
55
- request_header = {
56
- content_type: :json,
57
- accept: :json,
58
- authorization: "Bearer #{@access_token}"
59
- }
60
-
61
61
  response = RestClient.get(
62
62
  "https://ob.nordigen.com/api/v2/institutions/?country=#{country}",
63
- headers=request_header)
63
+ headers=@request_header)
64
64
 
65
65
  available_banks = JSON.parse(response.body,
66
66
  :external_encoding => 'iso-8859-1')
@@ -83,80 +83,144 @@ class NordigenOBClient
83
83
  #
84
84
  #############################################################################
85
85
  def list_accounts requisition_id
86
- request_header = {
87
- content_type: :json,
88
- accept: :json,
89
- authorization: "Bearer #{@access_token}"
90
- }
91
-
92
86
  response = RestClient.get(
93
87
  "https://ob.nordigen.com/api/v2/requisitions/#{requisition_id}",
94
- headers=request_header)
88
+ headers=@request_header)
95
89
  accounts = JSON.parse(response.body)
96
90
  accounts
97
91
  end
98
92
 
93
+ #############################################################################
94
+ #
95
+ # => Name: get_account_details
96
+ #
97
+ # => Description: Return's all the information available for the account.
98
+ #
99
+ # => Parameters: account_id: The id of the account (IBAN)
100
+ # for which the information will be returned.
101
+ #
102
+ #
103
+ # => Returns: The details available for the account. They can vary from bank
104
+ # to bank. The fields we see been returned always are:
105
+ # - IBAN
106
+ # - Currency
107
+ # - Owner Name
108
+ # - Product / account type (e.g. Savings, holding, etc.)
109
+ # - BIC
110
+ # - Usage: Private / Bureau
111
+ #
112
+ #############################################################################
99
113
  def get_account_details account_id
100
- request_header = {
101
- content_type: :json,
102
- accept: :json,
103
- authorization: "Bearer #{@access_token}"
104
- }
105
-
106
114
  response = RestClient.get(
107
115
  "https://ob.nordigen.com/api/v2/accounts/#{account_id}/details",
108
- headers=request_header)
116
+ headers=@request_header)
109
117
  accounts = JSON.parse(response.body)
110
118
  accounts
111
119
  end
112
120
 
113
121
 
122
+ #############################################################################
123
+ #
124
+ # => Name: get_account_balances
125
+ #
126
+ # => Description: Return's the balances for the given account. The balances
127
+ # can be more than one, since accounts allow overdraft or
128
+ # might have frozen limits.
129
+ #
130
+ # => Parameters: account_id: The id of the account (IBAN)
131
+ # for which the balances will be returned.
132
+ #
133
+ #
134
+ # => Returns: The details available for the account. They can vary from bank
135
+ # to bank. The fields we see been returned always are:
136
+ # - Balance amount
137
+ # - Currency
138
+ # - Type of balances
139
+ # - Balance date
140
+ #
141
+ #############################################################################
114
142
  def get_account_balances account_id
115
- request_header = {
116
- content_type: :json,
117
- accept: :json,
118
- authorization: "Bearer #{@access_token}"
119
- }
120
-
121
143
  response = RestClient.get(
122
144
  "https://ob.nordigen.com/api/v2/accounts/#{account_id}/balances",
123
- headers=request_header)
145
+ headers=@request_header)
124
146
  accounts = JSON.parse(response.body)
125
147
  accounts
126
148
  end
127
149
 
128
150
 
151
+ #############################################################################
152
+ #
153
+ # => Name: get_account_overview
154
+ #
155
+ # => Description: Return's the basic information available for the account.
156
+ #
157
+ # => Parameters: account_id: The id of the account (IBAN)
158
+ # for which the information will be returned.
159
+ #
160
+ #
161
+ # => Returns: A summaru available for the account. THe fields included are:
162
+ # - IBAN
163
+ # - Nordigen's institution ID
164
+ # - Status: ready, inactive
165
+ # - Owner's name
166
+ #
167
+ #############################################################################
129
168
  def get_account_overview account_id
130
- request_header = {
131
- content_type: :json,
132
- accept: :json,
133
- authorization: "Bearer #{@access_token}"
134
- }
135
-
136
169
  response = RestClient.get(
137
170
  "https://ob.nordigen.com/api/v2/accounts/#{account_id}",
138
- headers=request_header)
171
+ headers=@request_header)
139
172
  accounts = JSON.parse(response.body)
140
173
  accounts
141
174
  end
142
175
 
143
176
 
177
+ #############################################################################
178
+ #
179
+ # => Name: get_account_transactions
180
+ #
181
+ # => Description: Return's the account statement for the last 90 days.
182
+ #
183
+ # => Parameters: account_id: The id of the account (IBAN)
184
+ # for which the information will be returned.
185
+ #
186
+ #
187
+ # => Returns: The list of transactions performed. THe fields included are:
188
+ # - Booking date, when the transaction was logged on the account.
189
+ # - Reference date, when it actually occured.
190
+ # - Transaction amount
191
+ # - Currency
192
+ # - Debitor BIC
193
+ # - Creditor BIC
194
+ #
195
+ #############################################################################
144
196
  def get_account_transactions account_id
145
- request_header = {
146
- content_type: :json,
147
- accept: :json,
148
- authorization: "Bearer #{@access_token}"
149
- }
150
-
151
197
  response = RestClient.get(
152
198
  "https://ob.nordigen.com/api/v2/accounts/#{account_id}/transactions",
153
- headers=request_header)
199
+ headers=@request_header)
154
200
  accounts = JSON.parse(response.body)
155
201
  accounts
156
202
  end
157
203
 
158
204
 
159
-
205
+ #############################################################################
206
+ #
207
+ # => Name: create_requisition
208
+ #
209
+ # => Description: It creates a new requisition ID that will enable the user
210
+ # to connect his bank accounts.
211
+ #
212
+ # => Parameters: redirect_url: The URL to which the user will be redirected
213
+ # after logging in to his bank environment.
214
+ #
215
+ # selected_bank_id: The Nordigen ID of the bank the user
216
+ # will be redirected.
217
+ #
218
+ # reference: A unique user identifier that will associate
219
+ # the user who will log in with the new requisition ID.
220
+ #
221
+ # => Returns: The access token
222
+ #
223
+ #############################################################################
160
224
  def create_requisition redirect_url, selected_bank_id, reference
161
225
  request_body = {
162
226
  "redirect" => redirect_url,
@@ -165,31 +229,29 @@ class NordigenOBClient
165
229
  "reference" => reference
166
230
  }.to_json
167
231
 
168
- request_header = {
169
- content_type: :json,
170
- accept: :json,
171
- authorization: "Bearer #{@access_token}"
172
- }
173
-
174
232
  response = RestClient.post(
175
233
  "https://ob.nordigen.com/api/v2/requisitions/",
176
234
  request_body,
177
- headers=request_header)
235
+ headers=@request_header)
178
236
  JSON.parse(response.body)
179
237
  end
180
238
 
181
239
 
240
+ #############################################################################
241
+ #
242
+ # => Name: delete_requisition
243
+ #
244
+ # => Description: It deletes the provided requisition ID.
245
+ #
246
+ # => Parameters: requisition_id: The requisition to delete.
247
+ #
248
+ # => Returns: The result of the operation
249
+ #
250
+ #############################################################################
182
251
  def delete_requisition requisition_id
183
- request_header = {
184
- content_type: :json,
185
- accept: :json,
186
- authorization: "Bearer #{@access_token}"
187
- }
188
-
189
252
  response = RestClient.delete(
190
253
  "https://ob.nordigen.com/api/v2/requisitions/#{requisition_id}",
191
- request_body,
192
- headers=request_header)
254
+ headers=@request_header)
193
255
  JSON.parse(response.body)
194
256
  response
195
257
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nordigen_ob_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Angelos Kapsimanis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-31 00:00:00.000000000 Z
11
+ date: 2022-12-16 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby client for Nordigen's Open Banking v2.0 API. Look at https://nordigen.com/en/account_information_documenation/api-documention/overview/
14
14
  for more details.