finapps 5.0.9 → 5.0.10

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1eef2e1f4a6177f463ec74781701fbcd80ef842eab4a6489cc3460a74a98aa7c
4
- data.tar.gz: 5bd9a2b5a82310c31e475e28ff48efebcc0c879ec413b9d47684e0f916496886
3
+ metadata.gz: b0b9775ed8bdf1598984b13c5f799b2a9740dde8dbfcc518b96b900f47278a98
4
+ data.tar.gz: bb130677424e512cd13b134e59b0e7eb5d262d1f111ad42642bea1e07a4c592b
5
5
  SHA512:
6
- metadata.gz: 7213c874529747d992384a0dc1feb72d75fe3261ee2a88b3dcb5afd53aacc62973a8f5881d926aef612555dbe55e5c5c2e1f28e1092b1861736134bf4eb65d08
7
- data.tar.gz: 71014f994b5295e6abfd99147fcee0ba85b92d09adae430c0911a3ef8e90ae1f1d61ba7eaccc9549c84ca31f4fa46ad01a782749a1e77ecf86459876e3b25eec
6
+ metadata.gz: 2501b741c714fb24f001d5fcca0252b99a87e71cb57514e0ecc0358eaf6628413e8aacbbbe83da8ab06acb5c9e312884b3d88f8fadb7e0e10d727d28586aeeae
7
+ data.tar.gz: 5365f4532836f489dce0d8b35f647ca93df1a34a285e09df6240ad57dd9744502231ec2bed6bd7559bfa4c4d5d945293c17ff80bda41aa8fda2d700e377b924f
@@ -7,8 +7,15 @@ module FinApps
7
7
  super(params, 'p/institution/consumer')
8
8
  end
9
9
 
10
- def show(id)
11
- super nil, "p/institution/consumer/#{id}"
10
+ def show(id, options = { show_accounts: false })
11
+ results, error_messages = super(nil, "p/institution/consumer/#{id}")
12
+
13
+ if error_messages.empty? && options[:show_accounts]
14
+ account_results, error_messages = super(nil, "p/institution/consumer/#{id}/account")
15
+ results[:accounts] = account_results if error_messages.empty?
16
+ end
17
+
18
+ [results, error_messages]
12
19
  end
13
20
 
14
21
  def list
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '5.0.9'
4
+ VERSION = '5.0.10'
5
5
  end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.shared_examples 'an API request' do |_parameter|
4
+ it do
5
+ expect do
6
+ # noinspection RubyBlockToMethodReference
7
+ subject
8
+ end.not_to raise_error
9
+ end
10
+ it('returns an array') { expect(subject).to be_a(Array) }
11
+ end
12
+
13
+ RSpec.shared_examples 'a successful request' do |_parameter|
14
+ it('returns no error messages') do
15
+ expect(subject[ERROR_MESSAGES]).to be_empty
16
+ end
17
+ end
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helpers/client'
4
+ require 'rest/api_request'
4
5
 
5
6
  RSpec.describe FinApps::REST::PlaidConsumerInstitutions do
6
7
  include SpecHelpers::Client
@@ -8,25 +9,9 @@ RSpec.describe FinApps::REST::PlaidConsumerInstitutions do
8
9
  # noinspection RubyBlockToMethodReference
9
10
  let(:api_client) { client }
10
11
 
11
- RSpec.shared_examples 'an API request' do |_parameter|
12
- it do
13
- expect do
14
- # noinspection RubyBlockToMethodReference
15
- subject
16
- end.not_to raise_error
17
- end
18
- it('returns an array') { expect(subject).to be_a(Array) }
19
- end
20
-
21
- RSpec.shared_examples 'a successful request' do |_parameter|
22
- it('returns no error messages') do
23
- expect(subject[ERROR_MESSAGES]).to be_empty
24
- end
25
- end
26
-
27
12
  RSpec.shared_examples 'a request that returns institution data' do |_parameter|
28
13
  it('returns institution data') do
29
- expect(subject[RESULTS]).to have_key(:_id)
14
+ expect(subject[RESULTS]).to have_key(:plaid_institution_id)
30
15
  end
31
16
  end
32
17
 
@@ -52,6 +37,20 @@ RSpec.describe FinApps::REST::PlaidConsumerInstitutions do
52
37
  it_behaves_like 'an API request'
53
38
  it_behaves_like 'a successful request'
54
39
  it_behaves_like 'a request that returns institution data'
40
+ context 'when requesting accounts information' do
41
+ subject(:show) do
42
+ FinApps::REST::PlaidConsumerInstitutions.new(api_client).show(
43
+ :consumer_institution_id, show_accounts: true
44
+ )
45
+ end
46
+
47
+ it_behaves_like 'an API request'
48
+ it_behaves_like 'a successful request'
49
+ it_behaves_like 'a request that returns institution data'
50
+ it('returns institution account data') do
51
+ expect(subject[RESULTS]).to have_key(:accounts)
52
+ end
53
+ end
55
54
  end
56
55
 
57
56
  describe '#list' do
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helpers/client'
4
+ require 'rest/api_request'
4
5
 
5
6
  RSpec.describe FinApps::REST::PlaidWebhooks do
6
7
  include SpecHelpers::Client
@@ -9,20 +10,13 @@ RSpec.describe FinApps::REST::PlaidWebhooks do
9
10
  subject(:show) { FinApps::REST::PlaidWebhooks.new(api_client).show }
10
11
 
11
12
  describe '#show' do
12
- RSpec.shared_examples 'an API request' do |_parameter|
13
- it { expect { show }.not_to raise_error }
14
- it('returns an array') { expect(show).to be_a(Array) }
15
- end
16
-
17
13
  context 'when valid tenant token is provided' do
18
14
  it_behaves_like 'an API request'
15
+ it_behaves_like 'a successful request'
19
16
 
20
17
  it('performs a post and returns the webhook url') do
21
18
  expect(show[RESULTS]).to have_key(:url)
22
19
  end
23
- it('returns no error messages') do
24
- expect(show[ERROR_MESSAGES]).to be_empty
25
- end
26
20
  end
27
21
 
28
22
  context 'when invalid tenant token is provided' do
@@ -29,6 +29,9 @@ class FakeApi < Sinatra::Base
29
29
  get("/#{version}/p/institution/consumer/:consumer_institution_id") do
30
30
  json_response 200, 'plaid/institution/consumer/show.json'
31
31
  end
32
+ get("/#{version}/p/institution/consumer/:consumer_institution_id/account") do
33
+ json_response 200, 'plaid/institution/consumer/show_accounts.json'
34
+ end
32
35
  get("/#{version}/p/institution/consumer") do
33
36
  tenant_token = request.env['HTTP_X_TENANT_TOKEN']
34
37
  if tenant_token == 'invalid_tenant_token'
@@ -0,0 +1,57 @@
1
+ [
2
+ {
3
+ "_id": "ObjectId(\"507f1f77bcf86cd799439012\")",
4
+ "consumer_institution_id": "ObjectId(\"507f1f77bcf86cd799439011\")",
5
+ "plaid_account_id": "vzeNDwK7KQIm4yEog683uElbp9GRLEFXGK98D",
6
+ "balances": {
7
+ "available": 100,
8
+ "current": 110,
9
+ "limit": null,
10
+ "iso_currency_code": "USD",
11
+ "unofficial_currency_code": null
12
+ },
13
+ "mask": "0000",
14
+ "name": "Plaid Checking",
15
+ "official_name": "Plaid Gold Checking",
16
+ "subtype": "checking",
17
+ "type": "depository",
18
+ "identifiers": {
19
+ "wire_routing": "123456789",
20
+ "routing": "123456789",
21
+ "account": "987654321"
22
+ },
23
+ "identities": [
24
+ {
25
+ "names": [
26
+ {
27
+ "data": "John Doe"
28
+ }
29
+ ],
30
+ "emails": [
31
+ {
32
+ "data": "johndoe@ardanlabs.com",
33
+ "type": "primary",
34
+ "primary": true
35
+ }
36
+ ],
37
+ "phone_numbers": [
38
+ {
39
+ "data": "13165551234",
40
+ "type": "primary",
41
+ "primary": true
42
+ }
43
+ ],
44
+ "addresses": [
45
+ {
46
+ "city": "Wichita",
47
+ "region": "KS",
48
+ "street": "123 Foobar Ave",
49
+ "postal_code": "67002",
50
+ "country": "US",
51
+ "primary": true
52
+ }
53
+ ]
54
+ }
55
+ ]
56
+ }
57
+ ]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: finapps
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.9
4
+ version: 5.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-07 00:00:00.000000000 Z
11
+ date: 2019-08-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: finapps_core
@@ -331,6 +331,7 @@ files:
331
331
  - lib/tasks/releaser.rake
332
332
  - spec/rest/alert_definitions_spec.rb
333
333
  - spec/rest/alert_occurrences_spec.rb
334
+ - spec/rest/api_request.rb
334
335
  - spec/rest/client_spec.rb
335
336
  - spec/rest/consumers_portfolios_spec.rb
336
337
  - spec/rest/consumers_spec.rb
@@ -386,6 +387,7 @@ files:
386
387
  - spec/support/fixtures/plaid/institution/consumer/add.json
387
388
  - spec/support/fixtures/plaid/institution/consumer/list.json
388
389
  - spec/support/fixtures/plaid/institution/consumer/show.json
390
+ - spec/support/fixtures/plaid/institution/consumer/show_accounts.json
389
391
  - spec/support/fixtures/plaid/webhook.json
390
392
  - spec/support/fixtures/portfolio.json
391
393
  - spec/support/fixtures/portfolio_reports.json
@@ -449,6 +451,7 @@ test_files:
449
451
  - spec/rest/operators_spec.rb
450
452
  - spec/rest/client_spec.rb
451
453
  - spec/rest/tenant_settings_spec.rb
454
+ - spec/rest/api_request.rb
452
455
  - spec/rest/alert_occurrences_spec.rb
453
456
  - spec/rest/password_resets_spec.rb
454
457
  - spec/rest/order_reports_spec.rb