finapps 4.0.8 → 4.0.9
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/lib/finapps.rb +1 -0
- data/lib/finapps/rest/consumer_institution_refresh.rb +14 -0
- data/lib/finapps/version.rb +1 -1
- data/spec/rest/consumer_institution_refresh_spec.rb +44 -0
- data/spec/support/fake_api.rb +9 -0
- data/spec/support/fixtures/mfa_timeout.json +12 -0
- data/spec/support/fixtures/refresh_invalid_mfa.json +11 -0
- data/spec/support/fixtures/refresh_not_refreshed.json +11 -0
- data/spec/support/fixtures/refresh_pending_mfa.json +13 -0
- data/spec/support/fixtures/refresh_queued.json +12 -0
- metadata +10 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 37f393e38b809f2a8bfb01469e68235fcf15464fd7eec0ad500c3c78f7d12599
|
|
4
|
+
data.tar.gz: 91301f530b515f31f30e43b7f094e065f96e43d7b4c4751cf7b2a94fee8ab016
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 93da2560854c2ecf2182bc166925f5b087470e96be627ccad9dd344a191ce8f40ee92df1ddaaaff0222be6f221ff1cf07f28bf5045e0c9f300dbc67355be19a3
|
|
7
|
+
data.tar.gz: 7d508c4d15c85151a2c5cdf9cf23f5402bfeea97eedabc1f70709eba1faea2c6619de266adcb1260e67ee8f8da2d75c41cd3fdcee559e18a9f9bc8eaf8bc94f6
|
data/lib/finapps.rb
CHANGED
|
@@ -7,6 +7,7 @@ require 'finapps_core'
|
|
|
7
7
|
require 'finapps/rest/version'
|
|
8
8
|
require 'finapps/rest/consumers'
|
|
9
9
|
require 'finapps/rest/consumer_institution_refreshes'
|
|
10
|
+
require 'finapps/rest/consumer_institution_refresh'
|
|
10
11
|
require 'finapps/rest/sessions'
|
|
11
12
|
require 'finapps/rest/order_tokens'
|
|
12
13
|
require 'finapps/rest/orders'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module FinApps
|
|
4
|
+
module REST
|
|
5
|
+
class ConsumerInstitutionRefresh < FinAppsCore::REST::Resources
|
|
6
|
+
def update(id, params = {})
|
|
7
|
+
not_blank(id, :id)
|
|
8
|
+
|
|
9
|
+
path = "institutions/consumer/#{ERB::Util.url_encode(id)}/refresh"
|
|
10
|
+
super params, path
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
data/lib/finapps/version.rb
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'spec_helpers/client'
|
|
4
|
+
|
|
5
|
+
RSpec.describe FinApps::REST::ConsumerInstitutionRefresh, 'initialized with valid FinApps::Client object' do
|
|
6
|
+
include SpecHelpers::Client
|
|
7
|
+
let(:refresh) { FinApps::REST::ConsumerInstitutionRefresh.new client }
|
|
8
|
+
|
|
9
|
+
describe '#update' do
|
|
10
|
+
let(:valid_params) { { token: 'valid_token' } }
|
|
11
|
+
let(:invalid_params) { { token: 'invalid_token' } }
|
|
12
|
+
|
|
13
|
+
context 'when missing id' do
|
|
14
|
+
it { expect { refresh.update(nil) }.to raise_error(FinAppsCore::MissingArgumentsError) }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
context 'when invalid id is provided' do
|
|
18
|
+
subject { refresh.update(:invalid_consumer_institution_id) }
|
|
19
|
+
|
|
20
|
+
it { expect { subject }.not_to raise_error }
|
|
21
|
+
it('results is nil') { expect(subject[0]).to be_nil }
|
|
22
|
+
it('error messages array is populated') { expect(subject[1]).not_to be_nil }
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
context 'when invalid params are provided' do
|
|
26
|
+
subject { refresh.update(:valid_consumer_institution_id, invalid_params) }
|
|
27
|
+
|
|
28
|
+
it { expect { subject }.not_to raise_error }
|
|
29
|
+
it('results is nil') { expect(subject[0]).to be_nil }
|
|
30
|
+
it('error messages array is populated') { expect(subject[1]).not_to be_nil }
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
context 'when valid id is provided' do
|
|
34
|
+
subject { refresh.update(:valid_consumer_institution_id) }
|
|
35
|
+
|
|
36
|
+
it { expect { subject }.not_to raise_error }
|
|
37
|
+
it('returns an array') { expect(subject).to be_a(Array) }
|
|
38
|
+
it('performs a PUT and returns the response') do
|
|
39
|
+
expect(subject[0]).to respond_to(:consumer_institution)
|
|
40
|
+
end
|
|
41
|
+
it('returns no error messages') { expect(subject[1]).to be_empty }
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
data/spec/support/fake_api.rb
CHANGED
|
@@ -95,6 +95,15 @@ class FakeApi < Sinatra::Base
|
|
|
95
95
|
get('/v3/institutions/consumer/valid_id/form') { json_response 200, 'institution_login_form.json' }
|
|
96
96
|
get('/v3/institutions/consumer/invalid_id/form') { json_response 400, 'invalid_institution_id.json' }
|
|
97
97
|
put('/v3/institutions/refresh') { json_response 200, 'user_institution_refresh.json' }
|
|
98
|
+
put('/v3/institutions/consumer/valid_consumer_institution_id/refresh') do
|
|
99
|
+
request.body.rewind
|
|
100
|
+
request_payload = JSON.parse request.body.read
|
|
101
|
+
if request_payload['token'] == 'invalid_token'
|
|
102
|
+
json_response(400, 'refresh_invalid_mfa.json')
|
|
103
|
+
else
|
|
104
|
+
json_response(200, 'refresh_queued.json')
|
|
105
|
+
end
|
|
106
|
+
end
|
|
98
107
|
|
|
99
108
|
# consumers
|
|
100
109
|
get('/v3/consumers/valid_public_id') { json_response 200, 'user.json' }
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"consumer_institution": {
|
|
3
|
+
"_id": "5ca354c6ee35e00001481105",
|
|
4
|
+
"institution_id": 0,
|
|
5
|
+
"institution_name": "Dag Site SecurityQA (US)",
|
|
6
|
+
"mfa_type": 0,
|
|
7
|
+
"status": 15,
|
|
8
|
+
"status_message": "not refreshed - recently refreshed",
|
|
9
|
+
"last_refreshed": "2019-04-02T12:26:00Z"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"consumer_institution": {
|
|
3
|
+
"_id": "5ca3778d2fbfd8000130e02c",
|
|
4
|
+
"account_id": 10455542,
|
|
5
|
+
"institution_id": 16445,
|
|
6
|
+
"institution_name": "Dag Site TokenFMPA (US)",
|
|
7
|
+
"mfa_type": 1,
|
|
8
|
+
"status": 14,
|
|
9
|
+
"status_message": "pending mfa information",
|
|
10
|
+
"last_refreshed": "2019-04-02T14:54:14Z"
|
|
11
|
+
},
|
|
12
|
+
"mfa": "<div class=\"mfa\"><div class=\"mfaField\"><label class=\"mfaFieldLabel\">Security Key</label><input class=\"mfaFieldInput\" type=\"text\" name=\"userResponse.token\" value=\"\" max=\"6\" ><input class=\"mfaFieldInput\" type=\"hidden\" name=\"userResponse.objectInstanceType\" value=\"com.yodlee.core.mfarefresh.MFATokenResponse\" ></div></div>"
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"consumer_institution": {
|
|
3
|
+
"_id": "5ca354c6ee35e00001481105",
|
|
4
|
+
"account_id": 10455527,
|
|
5
|
+
"institution_id": 16486,
|
|
6
|
+
"institution_name": "Dag Site SecurityQA (US)",
|
|
7
|
+
"mfa_type": 4,
|
|
8
|
+
"status": 3,
|
|
9
|
+
"status_message": "queued",
|
|
10
|
+
"last_refreshed": "2019-04-02T12:26:00Z"
|
|
11
|
+
}
|
|
12
|
+
}
|
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: 4.0.
|
|
4
|
+
version: 4.0.9
|
|
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-
|
|
11
|
+
date: 2019-04-02 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: finapps_core
|
|
@@ -237,6 +237,7 @@ files:
|
|
|
237
237
|
- lib/finapps/rest/alert_definitions.rb
|
|
238
238
|
- lib/finapps/rest/alert_occurrences.rb
|
|
239
239
|
- lib/finapps/rest/client.rb
|
|
240
|
+
- lib/finapps/rest/consumer_institution_refresh.rb
|
|
240
241
|
- lib/finapps/rest/consumer_institution_refreshes.rb
|
|
241
242
|
- lib/finapps/rest/consumers.rb
|
|
242
243
|
- lib/finapps/rest/consumers_portfolios.rb
|
|
@@ -272,6 +273,7 @@ files:
|
|
|
272
273
|
- spec/rest/alert_definitions_spec.rb
|
|
273
274
|
- spec/rest/alert_occurrences_spec.rb
|
|
274
275
|
- spec/rest/client_spec.rb
|
|
276
|
+
- spec/rest/consumer_institution_refresh_spec.rb
|
|
275
277
|
- spec/rest/consumer_institution_refreshes_spec.rb
|
|
276
278
|
- spec/rest/consumers_portfolios_spec.rb
|
|
277
279
|
- spec/rest/consumers_spec.rb
|
|
@@ -317,6 +319,7 @@ files:
|
|
|
317
319
|
- spec/support/fixtures/invalid_request_body.json
|
|
318
320
|
- spec/support/fixtures/invalid_user_id.json
|
|
319
321
|
- spec/support/fixtures/invalid_user_institution_id.json
|
|
322
|
+
- spec/support/fixtures/mfa_timeout.json
|
|
320
323
|
- spec/support/fixtures/multiple_consumer_subscribe_error.json
|
|
321
324
|
- spec/support/fixtures/operator.json
|
|
322
325
|
- spec/support/fixtures/operator_forgot_password.json
|
|
@@ -335,6 +338,10 @@ files:
|
|
|
335
338
|
- spec/support/fixtures/portfolios_available_consumers.json
|
|
336
339
|
- spec/support/fixtures/portfolios_consumers.json
|
|
337
340
|
- spec/support/fixtures/products.json
|
|
341
|
+
- spec/support/fixtures/refresh_invalid_mfa.json
|
|
342
|
+
- spec/support/fixtures/refresh_not_refreshed.json
|
|
343
|
+
- spec/support/fixtures/refresh_pending_mfa.json
|
|
344
|
+
- spec/support/fixtures/refresh_queued.json
|
|
338
345
|
- spec/support/fixtures/resource.json
|
|
339
346
|
- spec/support/fixtures/resource_not_found.json
|
|
340
347
|
- spec/support/fixtures/resources.json
|
|
@@ -409,6 +416,7 @@ test_files:
|
|
|
409
416
|
- spec/rest/order_refreshes_spec.rb
|
|
410
417
|
- spec/rest/order_notifications_spec.rb
|
|
411
418
|
- spec/rest/portfolios_alerts_spec.rb
|
|
419
|
+
- spec/rest/consumer_institution_refresh_spec.rb
|
|
412
420
|
- spec/rest/order_assignments_spec.rb
|
|
413
421
|
- spec/rest/sessions_spec.rb
|
|
414
422
|
- spec/rest/portfolio_reports_spec.rb
|