belvo 0.16.0 → 0.19.3
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 +4 -4
- data/.circleci/config.yml +53 -0
- data/.github/CODEOWNERS +1 -0
- data/Gemfile +0 -11
- data/Gemfile.lock +19 -23
- data/README.md +9 -2
- data/belvo.gemspec +1 -1
- data/lib/belvo/http.rb +4 -4
- data/lib/belvo/options.rb +27 -0
- data/lib/belvo/resources.rb +92 -15
- data/lib/belvo/version.rb +1 -1
- data/lib/belvo.rb +18 -0
- metadata +6 -5
- data/.travis.yml +0 -18
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 455f08aad36bb45f904a6c06fd63b46a91f320d20add273c8362e64d61d9e2a9
|
|
4
|
+
data.tar.gz: 674222f146ca510d11aee096a80c92b6b492ac37c1b56d9995d8524fc326c066
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1020a9ca2b693f828453c35b960909a287948c441846873ad046d6dd74007f95682d929f1bca7c030bee692ffece52fa9d9a7d83e5e8b71dc353f23736eadda2
|
|
7
|
+
data.tar.gz: eb1609e92f2b796b7a57aefdd9ef6dc64b89400efebc9f250bde379ffe4ee4dee59ed4c1fe9d8bbb22d92e6a8a6e79d0ed35a85107a878bddd08e2d00616b221
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
version: 2.1
|
|
2
|
+
orbs:
|
|
3
|
+
ruby: circleci/ruby@1.0.4
|
|
4
|
+
jobs:
|
|
5
|
+
test:
|
|
6
|
+
docker:
|
|
7
|
+
- image: cimg/ruby:2.7
|
|
8
|
+
steps:
|
|
9
|
+
- checkout
|
|
10
|
+
- ruby/install-deps
|
|
11
|
+
- run:
|
|
12
|
+
name: Install deps
|
|
13
|
+
command: gem install bundler -v 2.1.4
|
|
14
|
+
- run:
|
|
15
|
+
name: Run tests
|
|
16
|
+
command: |
|
|
17
|
+
bundle exec rubocop
|
|
18
|
+
bundle exec rspec spec
|
|
19
|
+
deploy-to-rubygems:
|
|
20
|
+
docker:
|
|
21
|
+
- image: cimg/ruby:2.7
|
|
22
|
+
steps:
|
|
23
|
+
- checkout
|
|
24
|
+
- ruby/install-deps
|
|
25
|
+
- run:
|
|
26
|
+
name: Set Rubygems credentials
|
|
27
|
+
command: |
|
|
28
|
+
mkdir ~/.gem
|
|
29
|
+
echo -e "---\r\n:rubygems_api_key: $GEM_HOST_API_KEY" > ~/.gem/credentials
|
|
30
|
+
chmod 0600 /home/circleci/.gem/credentials
|
|
31
|
+
- run:
|
|
32
|
+
name: Publish gem to Rubygems
|
|
33
|
+
command: bundle exec rake release
|
|
34
|
+
|
|
35
|
+
workflows:
|
|
36
|
+
build-test-deploy:
|
|
37
|
+
jobs:
|
|
38
|
+
- test:
|
|
39
|
+
filters:
|
|
40
|
+
tags:
|
|
41
|
+
only: /v.*/
|
|
42
|
+
context:
|
|
43
|
+
- shared
|
|
44
|
+
- deploy-to-rubygems:
|
|
45
|
+
requires:
|
|
46
|
+
- test
|
|
47
|
+
filters:
|
|
48
|
+
branches:
|
|
49
|
+
ignore: /.*/
|
|
50
|
+
tags:
|
|
51
|
+
only: /^v.*/
|
|
52
|
+
context:
|
|
53
|
+
- shared
|
data/.github/CODEOWNERS
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
* @belvo-finance/ruby @belvo-finance/opensource
|
data/Gemfile
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# rubocop:disable all
|
|
2
1
|
# frozen_string_literal: true
|
|
3
2
|
|
|
4
3
|
source 'https://rubygems.org'
|
|
@@ -6,14 +5,4 @@ source 'https://rubygems.org'
|
|
|
6
5
|
# Specify your gem's dependencies in belvo.gemspec
|
|
7
6
|
gemspec
|
|
8
7
|
|
|
9
|
-
gem 'coveralls', require: false
|
|
10
|
-
gem 'faraday'
|
|
11
|
-
gem 'faraday_middleware'
|
|
12
|
-
gem 'rake', '~> 12.0'
|
|
13
|
-
gem 'rspec', '~> 3.0'
|
|
14
|
-
gem 'rubocop', '~> 0.81.0', require: false
|
|
15
|
-
gem 'rubocop-rspec', require: false
|
|
16
|
-
gem 'typhoeus'
|
|
17
8
|
gem 'danger', '8.2.1'
|
|
18
|
-
gem 'webmock'
|
|
19
|
-
# rubocop:enable all
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
belvo (0.
|
|
4
|
+
belvo (0.19.3)
|
|
5
5
|
faraday
|
|
6
6
|
faraday_middleware
|
|
7
7
|
typhoeus
|
|
@@ -20,12 +20,11 @@ GEM
|
|
|
20
20
|
colored2 (3.1.2)
|
|
21
21
|
cork (0.3.0)
|
|
22
22
|
colored2 (~> 3.1)
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
tins (~> 1.6)
|
|
23
|
+
coveralls_reborn (0.23.0)
|
|
24
|
+
simplecov (>= 0.18.1, < 0.22.0)
|
|
25
|
+
term-ansicolor (~> 1.6)
|
|
26
|
+
thor (>= 0.20.3, < 2.0)
|
|
27
|
+
tins (~> 1.16)
|
|
29
28
|
crack (0.4.4)
|
|
30
29
|
danger (8.2.1)
|
|
31
30
|
claide (~> 1.0)
|
|
@@ -41,22 +40,21 @@ GEM
|
|
|
41
40
|
octokit (~> 4.7)
|
|
42
41
|
terminal-table (~> 1)
|
|
43
42
|
diff-lcs (1.4.4)
|
|
44
|
-
docile (1.
|
|
45
|
-
ethon (0.
|
|
46
|
-
ffi (>= 1.
|
|
43
|
+
docile (1.4.0)
|
|
44
|
+
ethon (0.14.0)
|
|
45
|
+
ffi (>= 1.15.0)
|
|
47
46
|
faraday (1.1.0)
|
|
48
47
|
multipart-post (>= 1.2, < 3)
|
|
49
48
|
ruby2_keywords
|
|
50
49
|
faraday-http-cache (2.2.0)
|
|
51
50
|
faraday (>= 0.8)
|
|
52
|
-
faraday_middleware (1.
|
|
51
|
+
faraday_middleware (1.1.0)
|
|
53
52
|
faraday (~> 1.0)
|
|
54
|
-
ffi (1.
|
|
53
|
+
ffi (1.15.3)
|
|
55
54
|
git (1.8.1)
|
|
56
55
|
rchardet (~> 1.8)
|
|
57
56
|
hashdiff (1.0.1)
|
|
58
57
|
jaro_winkler (1.5.4)
|
|
59
|
-
json (2.3.1)
|
|
60
58
|
kramdown (2.3.1)
|
|
61
59
|
rexml
|
|
62
60
|
kramdown-parser-gfm (1.1.0)
|
|
@@ -104,18 +102,19 @@ GEM
|
|
|
104
102
|
sawyer (0.8.2)
|
|
105
103
|
addressable (>= 2.3.5)
|
|
106
104
|
faraday (> 0.8, < 2.0)
|
|
107
|
-
simplecov (0.
|
|
105
|
+
simplecov (0.21.2)
|
|
108
106
|
docile (~> 1.1)
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
simplecov-html (0.
|
|
107
|
+
simplecov-html (~> 0.11)
|
|
108
|
+
simplecov_json_formatter (~> 0.1)
|
|
109
|
+
simplecov-html (0.12.3)
|
|
110
|
+
simplecov_json_formatter (0.1.3)
|
|
112
111
|
sync (0.5.0)
|
|
113
112
|
term-ansicolor (1.7.1)
|
|
114
113
|
tins (~> 1.0)
|
|
115
114
|
terminal-table (1.8.0)
|
|
116
115
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
|
117
|
-
thor (1.0
|
|
118
|
-
tins (1.
|
|
116
|
+
thor (1.1.0)
|
|
117
|
+
tins (1.29.1)
|
|
119
118
|
sync
|
|
120
119
|
typhoeus (1.4.0)
|
|
121
120
|
ethon (>= 0.9.0)
|
|
@@ -130,15 +129,12 @@ PLATFORMS
|
|
|
130
129
|
|
|
131
130
|
DEPENDENCIES
|
|
132
131
|
belvo!
|
|
133
|
-
|
|
132
|
+
coveralls_reborn
|
|
134
133
|
danger (= 8.2.1)
|
|
135
|
-
faraday
|
|
136
|
-
faraday_middleware
|
|
137
134
|
rake (~> 12.0)
|
|
138
135
|
rspec (~> 3.0)
|
|
139
136
|
rubocop (~> 0.81.0)
|
|
140
137
|
rubocop-rspec
|
|
141
|
-
typhoeus
|
|
142
138
|
webmock
|
|
143
139
|
|
|
144
140
|
BUNDLED WITH
|
data/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<h1 align="center">Belvo Ruby Gem</h1>
|
|
2
2
|
<p align="center">
|
|
3
3
|
<a href="https://rubygems.org/gems/belvo"><img alt="Rubygems.org" src="https://img.shields.io/gem/v/belvo?style=for-the-badge"></a>
|
|
4
|
-
<a href="https://
|
|
4
|
+
<a href="https://app.circleci.com/pipelines/github/belvo-finance/belvo-ruby"><img alt="CircleCI (.com)" src="https://img.shields.io/travis/com/belvo-finance/belvo-ruby/master?style=for-the-badge"></a>
|
|
5
5
|
<a href="https://coveralls.io/github/belvo-finance/belvo-ruby"><img alt="Coveralls github" src="https://img.shields.io/coveralls/github/belvo-finance/belvo-ruby?style=for-the-badge"></a>
|
|
6
6
|
<a href="https://codeclimate.com/github/belvo-finance/belvo-ruby"><img alt="CodeClimate maintainability" src="https://img.shields.io/codeclimate/maintainability/belvo-finance/belvo-ruby?style=for-the-badge"></a>
|
|
7
7
|
</p>
|
|
@@ -96,7 +96,14 @@ end
|
|
|
96
96
|
|
|
97
97
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
|
98
98
|
|
|
99
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
|
99
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
|
100
|
+
|
|
101
|
+
To release a new version:
|
|
102
|
+
- Create a new branch from master.
|
|
103
|
+
- Update the version number in `version.rb`
|
|
104
|
+
- Run `bundle exec rake install` to update `Gemfile.lock` version
|
|
105
|
+
- Create a new pull request for the new version.
|
|
106
|
+
- Once the new version is merged in `master`, create a `tag` matching the new version.
|
|
100
107
|
|
|
101
108
|
## Contributing
|
|
102
109
|
|
data/belvo.gemspec
CHANGED
|
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
|
|
|
33
33
|
spec.add_dependency 'faraday_middleware'
|
|
34
34
|
spec.add_dependency 'typhoeus'
|
|
35
35
|
|
|
36
|
-
spec.add_development_dependency '
|
|
36
|
+
spec.add_development_dependency 'coveralls_reborn'
|
|
37
37
|
spec.add_development_dependency 'rake', '~> 12.0'
|
|
38
38
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
|
39
39
|
spec.add_development_dependency 'rubocop', '~> 0.81.0'
|
data/lib/belvo/http.rb
CHANGED
|
@@ -17,7 +17,7 @@ module Belvo
|
|
|
17
17
|
# @param url [String] Belvo API host url
|
|
18
18
|
# @return [Faraday::Connection]
|
|
19
19
|
def initialize(url)
|
|
20
|
-
@url = format('%<url>s/
|
|
20
|
+
@url = format('%<url>s/', url: url)
|
|
21
21
|
@session = Faraday::Connection.new(url: @url) do |faraday|
|
|
22
22
|
faraday.adapter :typhoeus
|
|
23
23
|
faraday.response :json
|
|
@@ -41,7 +41,7 @@ module Belvo
|
|
|
41
41
|
raise RequestError.new(
|
|
42
42
|
'Request error',
|
|
43
43
|
response.status,
|
|
44
|
-
response.body
|
|
44
|
+
response.body
|
|
45
45
|
)
|
|
46
46
|
end
|
|
47
47
|
response
|
|
@@ -52,7 +52,7 @@ module Belvo
|
|
|
52
52
|
# to Belvo API else False.
|
|
53
53
|
def authenticate
|
|
54
54
|
@session.basic_auth(@key_id, @key_password)
|
|
55
|
-
response = @session.get('')
|
|
55
|
+
response = @session.get('api/')
|
|
56
56
|
response.success?
|
|
57
57
|
end
|
|
58
58
|
|
|
@@ -113,7 +113,7 @@ module Belvo
|
|
|
113
113
|
params = {} if params.nil?
|
|
114
114
|
|
|
115
115
|
resource_path = format('%<path>s%<id>s/', path: path, id: id)
|
|
116
|
-
response = get(resource_path, params)
|
|
116
|
+
response = get(resource_path, **params)
|
|
117
117
|
|
|
118
118
|
raise_for_status response
|
|
119
119
|
response.body
|
data/lib/belvo/options.rb
CHANGED
|
@@ -115,6 +115,14 @@ module Belvo
|
|
|
115
115
|
)
|
|
116
116
|
end
|
|
117
117
|
|
|
118
|
+
# @!class RiskInsights < Faraday::Options
|
|
119
|
+
# Contains configurable properties of a RiskInsights object
|
|
120
|
+
# @!attribute save_data [rw] Should data be persisted or not.
|
|
121
|
+
class RiskInsightsOptions < Faraday::Options.new(
|
|
122
|
+
:save_data
|
|
123
|
+
)
|
|
124
|
+
end
|
|
125
|
+
|
|
118
126
|
# @!class TaxComplianceStatusOptions < Faraday::Options
|
|
119
127
|
# Contains configurable properties of a TaxComplianceStatus
|
|
120
128
|
# @!attribute save_data [rw] Should data be persisted or not.
|
|
@@ -167,4 +175,23 @@ module Belvo
|
|
|
167
175
|
:widget
|
|
168
176
|
)
|
|
169
177
|
end
|
|
178
|
+
|
|
179
|
+
# @!class InvestmentsPortfolioOptions < Faraday::Options
|
|
180
|
+
# Contains configurable properties of an InvestmentsPortfolio
|
|
181
|
+
# @!attribute save_data [rw] Should data be persisted or not.
|
|
182
|
+
# @!attribute token [rw] OTP token required by the institution
|
|
183
|
+
class InvestmentsPortfolioOptions < Faraday::Options.new(:token, :save_data)
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
# @!class InvestmentsTransactionOptions < Faraday::Options
|
|
187
|
+
# Contains configurable properties of an InvestmentsTransaction
|
|
188
|
+
# @!attribute date_to [rw] Date string (YYYY-MM-DD)
|
|
189
|
+
# @!attribute save_data [rw] Should data be persisted or not.
|
|
190
|
+
# @!attribute token [rw] OTP token required by the institution
|
|
191
|
+
class InvestmentsTransactionOptions < Faraday::Options.new(
|
|
192
|
+
:date_to,
|
|
193
|
+
:token,
|
|
194
|
+
:save_data
|
|
195
|
+
)
|
|
196
|
+
end
|
|
170
197
|
end
|
data/lib/belvo/resources.rb
CHANGED
|
@@ -70,7 +70,7 @@ module Belvo
|
|
|
70
70
|
|
|
71
71
|
def initialize(session)
|
|
72
72
|
super(session)
|
|
73
|
-
@endpoint = 'links/'
|
|
73
|
+
@endpoint = 'api/links/'
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
# Register a new link
|
|
@@ -158,7 +158,7 @@ module Belvo
|
|
|
158
158
|
class Account < Resource
|
|
159
159
|
def initialize(session)
|
|
160
160
|
super(session)
|
|
161
|
-
@endpoint = 'accounts/'
|
|
161
|
+
@endpoint = 'api/accounts/'
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
# Retrieve accounts from an existing link
|
|
@@ -183,7 +183,7 @@ module Belvo
|
|
|
183
183
|
class Transaction < Resource
|
|
184
184
|
def initialize(session)
|
|
185
185
|
super(session)
|
|
186
|
-
@endpoint = 'transactions/'
|
|
186
|
+
@endpoint = 'api/transactions/'
|
|
187
187
|
end
|
|
188
188
|
|
|
189
189
|
# Retrieve transactions from an existing link
|
|
@@ -213,7 +213,7 @@ module Belvo
|
|
|
213
213
|
class Owner < Resource
|
|
214
214
|
def initialize(session)
|
|
215
215
|
super(session)
|
|
216
|
-
@endpoint = 'owners/'
|
|
216
|
+
@endpoint = 'api/owners/'
|
|
217
217
|
end
|
|
218
218
|
|
|
219
219
|
# Retrieve owners from an existing link
|
|
@@ -237,7 +237,7 @@ module Belvo
|
|
|
237
237
|
class Balance < Resource
|
|
238
238
|
def initialize(session)
|
|
239
239
|
super(session)
|
|
240
|
-
@endpoint = 'balances/'
|
|
240
|
+
@endpoint = 'api/balances/'
|
|
241
241
|
end
|
|
242
242
|
|
|
243
243
|
# Retrieve balances from a specific account or all accounts from a
|
|
@@ -267,7 +267,7 @@ module Belvo
|
|
|
267
267
|
class Statement < Resource
|
|
268
268
|
def initialize(session)
|
|
269
269
|
super(session)
|
|
270
|
-
@endpoint = 'statements/'
|
|
270
|
+
@endpoint = 'api/statements/'
|
|
271
271
|
end
|
|
272
272
|
|
|
273
273
|
# Retrieve statements information from a specific banking link.
|
|
@@ -297,7 +297,7 @@ module Belvo
|
|
|
297
297
|
class Income < Resource
|
|
298
298
|
def initialize(session)
|
|
299
299
|
super(session)
|
|
300
|
-
@endpoint = 'incomes/'
|
|
300
|
+
@endpoint = 'api/incomes/'
|
|
301
301
|
end
|
|
302
302
|
|
|
303
303
|
# Retrieve incomes information from a specific banking link.
|
|
@@ -324,7 +324,7 @@ module Belvo
|
|
|
324
324
|
class Invoice < Resource
|
|
325
325
|
def initialize(session)
|
|
326
326
|
super(session)
|
|
327
|
-
@endpoint = 'invoices/'
|
|
327
|
+
@endpoint = 'api/invoices/'
|
|
328
328
|
end
|
|
329
329
|
|
|
330
330
|
# @param link [String] Link UUID
|
|
@@ -354,13 +354,13 @@ module Belvo
|
|
|
354
354
|
class RecurringExpenses < Resource
|
|
355
355
|
def initialize(session)
|
|
356
356
|
super(session)
|
|
357
|
-
@endpoint = 'recurring-expenses/'
|
|
357
|
+
@endpoint = 'api/recurring-expenses/'
|
|
358
358
|
end
|
|
359
359
|
|
|
360
360
|
# Retrieve recurring expenses information from a specific banking link
|
|
361
361
|
# @param link [String] Link UUID
|
|
362
362
|
# @param options [RecurringExpensesOptions] Configurable properties
|
|
363
|
-
# @return [Hash] created
|
|
363
|
+
# @return [Hash] created RecurringExpenses details
|
|
364
364
|
# @raise [RequestError] If response code is different than 2XX
|
|
365
365
|
def retrieve(link:, options: nil)
|
|
366
366
|
options = RecurringExpensesOptions.from(options)
|
|
@@ -373,12 +373,36 @@ module Belvo
|
|
|
373
373
|
end
|
|
374
374
|
end
|
|
375
375
|
|
|
376
|
+
# RiskInsights contain relevant metrics about
|
|
377
|
+
# the credit risk of a Link
|
|
378
|
+
class RiskInsights < Resource
|
|
379
|
+
def initialize(session)
|
|
380
|
+
super(session)
|
|
381
|
+
@endpoint = 'api/risk-insights/'
|
|
382
|
+
end
|
|
383
|
+
|
|
384
|
+
# Retrieve risk insights information from a specific banking link
|
|
385
|
+
# @param link [String] Link UUID
|
|
386
|
+
# @param options [RiskInsightsOptions] Configurable properties
|
|
387
|
+
# @return [Hash] created RiskInsights details
|
|
388
|
+
# @raise [RequestError] If response code is different than 2XX
|
|
389
|
+
def retrieve(link:, options: nil)
|
|
390
|
+
options = RiskInsightsOptions.from(options)
|
|
391
|
+
body = {
|
|
392
|
+
link: link,
|
|
393
|
+
save_data: options.save_data || true
|
|
394
|
+
}.merge(options)
|
|
395
|
+
body = clean body: body
|
|
396
|
+
@session.post(@endpoint, body)
|
|
397
|
+
end
|
|
398
|
+
end
|
|
399
|
+
|
|
376
400
|
# A Tax compliance status is the representation of the tax situation
|
|
377
401
|
# of a person or a business to the tax authority in the country.
|
|
378
402
|
class TaxComplianceStatus < Resource
|
|
379
403
|
def initialize(session)
|
|
380
404
|
super(session)
|
|
381
|
-
@endpoint = 'tax-compliance-status/'
|
|
405
|
+
@endpoint = 'api/tax-compliance-status/'
|
|
382
406
|
end
|
|
383
407
|
|
|
384
408
|
# Retrieve tax compliance status information from a specific fiscal link.
|
|
@@ -409,7 +433,7 @@ module Belvo
|
|
|
409
433
|
class TaxReturn < Resource
|
|
410
434
|
def initialize(session)
|
|
411
435
|
super(session)
|
|
412
|
-
@endpoint = 'tax-returns/'
|
|
436
|
+
@endpoint = 'api/tax-returns/'
|
|
413
437
|
end
|
|
414
438
|
|
|
415
439
|
class TaxReturnType
|
|
@@ -454,7 +478,7 @@ module Belvo
|
|
|
454
478
|
class TaxStatus < Resource
|
|
455
479
|
def initialize(session)
|
|
456
480
|
super(session)
|
|
457
|
-
@endpoint = 'tax-status/'
|
|
481
|
+
@endpoint = 'api/tax-status/'
|
|
458
482
|
end
|
|
459
483
|
|
|
460
484
|
# Retrieve tax status information from a specific fiscal link.
|
|
@@ -484,7 +508,7 @@ module Belvo
|
|
|
484
508
|
class Institution < Resource
|
|
485
509
|
def initialize(session)
|
|
486
510
|
super(session)
|
|
487
|
-
@endpoint = 'institutions/'
|
|
511
|
+
@endpoint = 'api/institutions/'
|
|
488
512
|
end
|
|
489
513
|
end
|
|
490
514
|
|
|
@@ -494,7 +518,7 @@ module Belvo
|
|
|
494
518
|
class WidgetToken < Resource
|
|
495
519
|
def initialize(session)
|
|
496
520
|
super(session)
|
|
497
|
-
@endpoint = 'token/'
|
|
521
|
+
@endpoint = 'api/token/'
|
|
498
522
|
end
|
|
499
523
|
|
|
500
524
|
def create(options: nil)
|
|
@@ -514,4 +538,57 @@ module Belvo
|
|
|
514
538
|
@session.post(@endpoint, body)
|
|
515
539
|
end
|
|
516
540
|
end
|
|
541
|
+
|
|
542
|
+
# A InvestmentsPortfolio is a comprehensive view of your user's current
|
|
543
|
+
# investment holdings
|
|
544
|
+
class InvestmentsPortfolio < Resource
|
|
545
|
+
def initialize(session)
|
|
546
|
+
super(session)
|
|
547
|
+
@endpoint = 'investments/portfolios/'
|
|
548
|
+
end
|
|
549
|
+
|
|
550
|
+
# Retrieve investments portfolios from an existing link
|
|
551
|
+
# @param link [String] Link UUID
|
|
552
|
+
# @param options [InvestmentsPortfolioOptions] Configurable properties
|
|
553
|
+
# @return [Hash] created investments portfolios details
|
|
554
|
+
# @raise [RequestError] If response code is different than 2XX
|
|
555
|
+
def retrieve(link:, options: nil)
|
|
556
|
+
options = InvestmentsPortfolioOptions.from(options)
|
|
557
|
+
body = {
|
|
558
|
+
link: link,
|
|
559
|
+
token: options.token,
|
|
560
|
+
save_data: options.save_data || true
|
|
561
|
+
}.merge(options)
|
|
562
|
+
body = clean body: body
|
|
563
|
+
@session.post(@endpoint, body)
|
|
564
|
+
end
|
|
565
|
+
end
|
|
566
|
+
|
|
567
|
+
# A InvestmentsTransaction gets the existing transactions for an instrument
|
|
568
|
+
class InvestmentsTransaction < Resource
|
|
569
|
+
def initialize(session)
|
|
570
|
+
super(session)
|
|
571
|
+
@endpoint = 'investments/transactions/'
|
|
572
|
+
end
|
|
573
|
+
|
|
574
|
+
# Retrieve investments transactions from an existing link
|
|
575
|
+
# @param link [String] Link UUID
|
|
576
|
+
# @param date_from [String] Date string (YYYY-MM-DD)
|
|
577
|
+
# @param options [InvestmentsTransactionOptions] Configurable properties
|
|
578
|
+
# @return [Hash] created investments transactions details
|
|
579
|
+
# @raise [RequestError] If response code is different than 2XX
|
|
580
|
+
def retrieve(link:, date_from:, options: nil)
|
|
581
|
+
options = InvestmentsTransactionOptions.from(options)
|
|
582
|
+
date_to = options.date_to || Date.today.to_s
|
|
583
|
+
body = {
|
|
584
|
+
link: link,
|
|
585
|
+
date_from: date_from,
|
|
586
|
+
date_to: date_to,
|
|
587
|
+
token: options.token,
|
|
588
|
+
save_data: options.save_data || true
|
|
589
|
+
}.merge(options)
|
|
590
|
+
body = clean body: body
|
|
591
|
+
@session.post(@endpoint, body)
|
|
592
|
+
end
|
|
593
|
+
end
|
|
517
594
|
end
|
data/lib/belvo/version.rb
CHANGED
data/lib/belvo.rb
CHANGED
|
@@ -86,6 +86,12 @@ module Belvo
|
|
|
86
86
|
@recurring_expenses = RecurringExpenses.new @session
|
|
87
87
|
end
|
|
88
88
|
|
|
89
|
+
# Provides access to RiskInsights resource
|
|
90
|
+
# @return [RiskInsights]
|
|
91
|
+
def risk_insights
|
|
92
|
+
@risk_insights = RiskInsights.new @session
|
|
93
|
+
end
|
|
94
|
+
|
|
89
95
|
# Provides access to TaxComplianceStatus resource
|
|
90
96
|
# @return [TaxComplianceStatus]
|
|
91
97
|
def tax_compliance_status
|
|
@@ -115,5 +121,17 @@ module Belvo
|
|
|
115
121
|
def widget_token
|
|
116
122
|
@widget_token = WidgetToken.new @session
|
|
117
123
|
end
|
|
124
|
+
|
|
125
|
+
# Provides access to InvestmentsPortfolio resource
|
|
126
|
+
# @return [InvestmentsPortfolio]
|
|
127
|
+
def investments_portfolio
|
|
128
|
+
@investments_portfolio = InvestmentsPortfolio.new @session
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
# Provides access to InvestmentsTransaction resource
|
|
132
|
+
# @return [InvestmentsTransaction]
|
|
133
|
+
def investments_transaction
|
|
134
|
+
@investments_transaction = InvestmentsTransaction.new @session
|
|
135
|
+
end
|
|
118
136
|
end
|
|
119
137
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: belvo
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.19.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Belvo Finance S.L.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2022-01-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: faraday
|
|
@@ -53,7 +53,7 @@ dependencies:
|
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
54
|
version: '0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: coveralls_reborn
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - ">="
|
|
@@ -146,14 +146,15 @@ executables: []
|
|
|
146
146
|
extensions: []
|
|
147
147
|
extra_rdoc_files: []
|
|
148
148
|
files:
|
|
149
|
+
- ".circleci/config.yml"
|
|
149
150
|
- ".codeclimate.yml"
|
|
151
|
+
- ".github/CODEOWNERS"
|
|
150
152
|
- ".github/ISSUE_TEMPLATE/feature_request.md"
|
|
151
153
|
- ".github/pull_request_template.md"
|
|
152
154
|
- ".github/workflows/danger-pr-reviews.yml"
|
|
153
155
|
- ".gitignore"
|
|
154
156
|
- ".rspec"
|
|
155
157
|
- ".rubocop.yml"
|
|
156
|
-
- ".travis.yml"
|
|
157
158
|
- CODE_OF_CONDUCT.md
|
|
158
159
|
- Dangerfile
|
|
159
160
|
- Gemfile
|
|
@@ -193,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
193
194
|
- !ruby/object:Gem::Version
|
|
194
195
|
version: '0'
|
|
195
196
|
requirements: []
|
|
196
|
-
rubygems_version: 3.
|
|
197
|
+
rubygems_version: 3.2.32
|
|
197
198
|
signing_key:
|
|
198
199
|
specification_version: 4
|
|
199
200
|
summary: The Ruby gem for the Belvo API
|
data/.travis.yml
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
language: ruby
|
|
2
|
-
cache: bundler
|
|
3
|
-
rvm:
|
|
4
|
-
- 2.5.5
|
|
5
|
-
before_install: gem install bundler -v 2.1.4
|
|
6
|
-
script:
|
|
7
|
-
- bundle exec rubocop
|
|
8
|
-
- bundle exec rspec spec
|
|
9
|
-
deploy:
|
|
10
|
-
provider: rubygems
|
|
11
|
-
api_key:
|
|
12
|
-
secure: nsKurIEds1W6zwyj0mDmYx77amlDJOycegZV9o+OrBOzRRcpT+O3oFHGouMzAQyIbdUtmWyXp9uJHBEz7Q6Zc5fy6iG05sGO7tFoJMlKiPE5piiOTM5y6qt1GjZ1MYIU0rpnsp9QDsVUR1ATGpoD9O/zzn/lOPbxp2FoWHqWra84D/1jvVXPTqslLgup+GDsxseiAfwTMoTy65TXodISkvoYtlPL3EBV4/XQVBjVGGtM5mdjDJg+YA4yVA2NwCCjhFcj88fRxBmqWRnG/pzmX3nyRlMGjtUBm8OpLSR1NiXXqgzYUAVMD8/8VL/h3OsBqvwqgjZKMO6rXqNKFJQAxYUqvJaLcHP8D05dxWlumqwxlHzscKWLjAe7JbVo2DiAMvMTR8NTJOI7LOraU10iFHtmwAVnyBOaSJUVJuFgAoybq9tqYoZ/uZ7shCuWVNUIWIQM7HN9v99tfvemXMB+2RIN565bzBWSorn5MvXsApvqCLLDFuRnt7urR+0ZyT4dKXgvWRhnNOQgiMwEE/8+Y66nKVB7iNxFDw6LtittyoOZ0HvbHQDtqXOkzT/yaq2Ff2zwuUNYrCHqcdnxg5TBOYg5ndurcFxAc77ZlNSvidEC9tgXHA1m+r0Vq+ZCWOiyyohX33ZfA/UsAIStKr7a6ZLZZywuiqXasg1O9XoRB74=
|
|
13
|
-
gem: belvo
|
|
14
|
-
on:
|
|
15
|
-
tags: true
|
|
16
|
-
repo: belvo-finance/belvo-ruby
|
|
17
|
-
branch: master
|
|
18
|
-
skip_cleanup: 'true'
|