belvo 0.3.1 → 0.4.0

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: 50dc56e84a0e3da9460063b4d5589044ad4d88d29f8182ac21d106953e169d55
4
- data.tar.gz: 50d11079afd1b518d03e30b75d5b1dc5a44e725d7c449cf0036ecc36294a404e
3
+ metadata.gz: ff048795b869d8968a35be333ebbd05e4455b11324c0112e936bb864c2ed6b54
4
+ data.tar.gz: 5cbe5998bc9c47cd37918a1f7d511608316076ac95fa8b5219c6f5a5fa6e56fe
5
5
  SHA512:
6
- metadata.gz: '01414806db87f0512b9c8fe0ff9c611e2e248edb18c24a368173b35b439da0a7fa10b29e25d8e5c86048e4b67936e1d2359b886d94cb2a55ffb558bcc05f1cb0'
7
- data.tar.gz: 97053b093f9ac116decbad414b859da65de6b3ee2d18a53dfca5bd896db2a302be3c15f8d3c2823d144d7078ab14f92d09775cc16e1249d24e2113c3cf081c42
6
+ metadata.gz: 7823be7ba6522dd1e137d0cb74afe0e732384f18bbc887e617320693de58511c51fdad8db8c4582d013c897a38505662a938f4412e92acc068c0804b9bcc3237
7
+ data.tar.gz: a3ff06d08002a13e6ea8107d1c5d8e89c3ef3ae881b601b8dd1b0c5e95d8c986e51140d53400537d75bbe347d376f30a270955bc59ad53a9a4615616527d210c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- belvo (0.3.1)
4
+ belvo (0.4.0)
5
5
  faraday
6
6
  faraday_middleware
7
7
  typhoeus
data/lib/belvo.rb CHANGED
@@ -75,6 +75,12 @@ module Belvo
75
75
  @tax_returns = TaxReturn.new @session
76
76
  end
77
77
 
78
+ # Provides access to TaxStatus resource
79
+ # @return [TaxStatus]
80
+ def tax_status
81
+ @tax_status = TaxStatus.new @session
82
+ end
83
+
78
84
  # Provides access to Instituions resource
79
85
  # @return [Institution]
80
86
  def institutions
data/lib/belvo/options.rb CHANGED
@@ -8,10 +8,12 @@ module Belvo
8
8
  # @!attribute access_mode [rw] Link access mode (SINGLE or RECURRENT)
9
9
  # @!attribute token [rw] OTP token required by the institution
10
10
  # @!attribute encryption_key [rw] Custom encryption key
11
+ # @!attribute username_type [rw] Type of the username provided
11
12
  class LinkOptions < Faraday::Options.new(
12
13
  :access_mode,
13
14
  :token,
14
- :encryption_key
15
+ :encryption_key,
16
+ :username_type
15
17
  )
16
18
  end
17
19
 
@@ -111,4 +113,19 @@ module Belvo
111
113
  :attach_pdf
112
114
  )
113
115
  end
116
+
117
+ # @!class TaxStatusOptions < Faraday::Options
118
+ # Contains configurable properties of a TaxStatus
119
+ # @!attribute save_data [rw] Should data be persisted or not.
120
+ # @!attribute token [rw] OTP token required by the institution
121
+ # @!attribute encryption_key [rw] Custom encryption key
122
+ # @!attribute attach_pdf [rw] Should the PDF file be included in the
123
+ # response or not.
124
+ class TaxStatusOptions < Faraday::Options.new(
125
+ :token,
126
+ :encryption_key,
127
+ :save_data,
128
+ :attach_pdf
129
+ )
130
+ end
114
131
  end
@@ -95,7 +95,8 @@ module Belvo
95
95
  password2: password2,
96
96
  token: options.token,
97
97
  encryption_key: options.encryption_key,
98
- access_mode: options.access_mode || AccessMode::SINGLE
98
+ access_mode: options.access_mode || AccessMode::SINGLE,
99
+ username_type: options.username_type
99
100
  }.merge(options)
100
101
  body = clean body: body
101
102
  @session.post(@endpoint, body)
@@ -132,7 +133,7 @@ module Belvo
132
133
  # Retrieve accounts from an existing link
133
134
  # @param link [String] Link UUID
134
135
  # @param options [AccountOptions] Configurable properties
135
- # @return [Hash] created link details
136
+ # @return [Hash] created accounts details
136
137
  # @raise [RequestError] If response code is different than 2XX
137
138
  def retrieve(link:, options: nil)
138
139
  options = AccountOptions.from(options)
@@ -159,7 +160,7 @@ module Belvo
159
160
  # @param link [String] Link UUID
160
161
  # @param date_from [String] Date string (YYYY-MM-DD)
161
162
  # @param options [TransactionOptions] Configurable properties
162
- # @return [Hash] created link details
163
+ # @return [Hash] created transactions details
163
164
  # @raise [RequestError] If response code is different than 2XX
164
165
  def retrieve(link:, date_from:, options: nil)
165
166
  options = TransactionOptions.from(options)
@@ -189,7 +190,7 @@ module Belvo
189
190
  # Retrieve owners from an existing link
190
191
  # @param link [String] Link UUID
191
192
  # @param options [OwnerOptions] Configurable properties
192
- # @return [Hash] created link details
193
+ # @return [Hash] created owners details
193
194
  # @raise [RequestError] If response code is different than 2XX
194
195
  def retrieve(link:, options: nil)
195
196
  options = OwnerOptions.from(options)
@@ -216,7 +217,7 @@ module Belvo
216
217
  # @param link [String] Link UUID
217
218
  # @param date_from [String] Date string (YYYY-MM-DD)
218
219
  # @param options [BalanceOptions] Configurable properties
219
- # @return [Hash] created link details
220
+ # @return [Hash] created balances details
220
221
  # @raise [RequestError] If response code is different than 2XX
221
222
  def retrieve(link:, date_from:, options: nil)
222
223
  options = BalanceOptions.from(options)
@@ -247,7 +248,7 @@ module Belvo
247
248
  # @param year [Integer]
248
249
  # @param month [Integer]
249
250
  # @param options [StatementOptions] Configurable properties
250
- # @return [Hash] created link details
251
+ # @return [Hash] created statement details
251
252
  # @raise [RequestError] If response code is different than 2XX
252
253
  def retrieve(link:, account:, year:, month:, options: nil)
253
254
  options = StatementOptions.from(options)
@@ -279,7 +280,7 @@ module Belvo
279
280
  # @param date_from [String] Date string (YYYY-MM-DD)
280
281
  # @param date_to [String] Date string (YYYY-MM-DD)
281
282
  # @param options [InvoiceOptions] Configurable properties
282
- # @return [Hash] created link details
283
+ # @return [Hash] created invoices details
283
284
  # @raise [RequestError] If response code is different than 2XX
284
285
  def retrieve(link:, date_from:, date_to:, type:, options: nil)
285
286
  options = InvoiceOptions.from(options)
@@ -311,7 +312,7 @@ module Belvo
311
312
  # @param year_from [Integer]
312
313
  # @param year_to [Integer]
313
314
  # @param options [TaxReturnOptions] Configurable properties
314
- # @return [Hash] created link details
315
+ # @return [Hash] created tax returns details
315
316
  # @raise [RequestError] If response code is different than 2XX
316
317
  def retrieve(link:, year_from:, year_to:, options: nil)
317
318
  options = TaxReturnOptions.from(options)
@@ -333,6 +334,37 @@ module Belvo
333
334
  end
334
335
  end
335
336
 
337
+ # A Tax status is the representation of the tax situation of a person or a
338
+ # business to the tax authority in the country.
339
+ class TaxStatus < Resource
340
+ def initialize(session)
341
+ super(session)
342
+ @endpoint = 'tax-status/'
343
+ end
344
+
345
+ # Retrieve tax status information from a specific fiscal link.
346
+ # @param link [String] Link UUID
347
+ # @param options [TaxStatusOptions] Configurable properties
348
+ # @return [Hash] created tax status details
349
+ # @raise [RequestError] If response code is different than 2XX
350
+ def retrieve(link:, options: nil)
351
+ options = TaxStatusOptions.from(options)
352
+ body = {
353
+ link: link,
354
+ token: options.token,
355
+ encryption_key: options.encryption_key,
356
+ save_data: options.save_data || true,
357
+ attach_pdf: options.attach_pdf
358
+ }.merge(options)
359
+ body = clean body: body
360
+ @session.post(@endpoint, body)
361
+ end
362
+
363
+ def resume(_session_id, _token, _link: nil)
364
+ raise NotImplementedError 'TaxReturn does not support resuming a session.'
365
+ end
366
+ end
367
+
336
368
  # An Institution is an entity that Belvo can access information from. It can
337
369
  # be a bank or fiscal type of institutions such as the SAT in Mexico.
338
370
  class Institution < Resource
data/lib/belvo/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Belvo
4
4
  # belvo-ruby current version
5
- VERSION = '0.3.1'
5
+ VERSION = '0.4.0'
6
6
  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.3.1
4
+ version: 0.4.0
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: 2020-04-09 00:00:00.000000000 Z
11
+ date: 2020-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -190,7 +190,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  - !ruby/object:Gem::Version
191
191
  version: '0'
192
192
  requirements: []
193
- rubygems_version: 3.0.6
193
+ rubyforge_project:
194
+ rubygems_version: 2.7.6
194
195
  signing_key:
195
196
  specification_version: 4
196
197
  summary: The Ruby gem for the Belvo API