finapps 5.1.0 → 5.2.0

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: 376f28da5e635a8ad2bb605ed938fd3c27d06d826818a8b050e0bcc5cf3ffb62
4
- data.tar.gz: e1a10a00165e243ce8b8558efcc3e666f9f06c6f1a2344004c5f5f0182b15bd8
3
+ metadata.gz: 554b65d6356fd5e7b4e6c6711af7b915285353a34f88e6c95f73305573da56b5
4
+ data.tar.gz: 7b2d81aeba357ae0c8cdf7b6688ab4b7f5017a75c840ee6f09e095c1c64bd085
5
5
  SHA512:
6
- metadata.gz: b26f301279eefa97fbf482adb264d403de9978146513519916b6cfd7f7d2b8f16a85bc7abddc2254b33ee0de9e5e92897546f4c16e799d6e91374863a9636457
7
- data.tar.gz: d2c9335df63d6021e1e825bbfd5605dcbf3c969b691d0ac991d68dcbcffb2a0c10cf0c3a21f6c5ab2a4b678bf77603771f80a1161e8d36889e1f171ea8963d80
6
+ metadata.gz: 36390552ea22bf844baab8585a516e54cfa9e22267159f426d0ce94baae60163823b2dfe364828f8b039abdbf6ac1930c4105eea532f7667ed95687074829a49
7
+ data.tar.gz: 3942cfe7e696a6560f78bf0e5ead716831a7698b13b513b175d9af4f38382f4c4e457f2758f3053d596c3f37b99984ecf3cd3006f9f470afd644549a294f9362
@@ -14,6 +14,13 @@ module FinApps
14
14
  super(nil, path)
15
15
  end
16
16
 
17
+ def last(consumer_id)
18
+ not_blank(consumer_id, :consumer_id)
19
+
20
+ path = "#{end_point}/#{ERB::Util.url_encode(consumer_id)}/consumer"
21
+ send_request_for_id path, :get, nil
22
+ end
23
+
17
24
  def create(params)
18
25
  not_blank(params, :params)
19
26
  super params
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '5.1.0'
4
+ VERSION = '5.2.0'
5
5
  end
@@ -6,12 +6,12 @@ require 'rest/api_request'
6
6
  RSpec.describe FinApps::REST::Screenings do
7
7
  include SpecHelpers::Client
8
8
 
9
+ let(:results) { subject[0] }
10
+ let(:error_messages) { subject[1] }
11
+
9
12
  describe '#list' do
10
13
  subject(:list) { described_class.new(client).list(params) }
11
14
 
12
- let(:results) { list[0] }
13
- let(:error_messages) { list[1] }
14
-
15
15
  context 'with valid params' do
16
16
  let(:params) do
17
17
  {
@@ -79,9 +79,6 @@ RSpec.describe FinApps::REST::Screenings do
79
79
  describe '#show' do
80
80
  subject(:show) { described_class.new(client).show(id) }
81
81
 
82
- let(:results) { show[0] }
83
- let(:error_messages) { show[1] }
84
-
85
82
  context 'with valid id' do
86
83
  let(:id) { :valid_id }
87
84
 
@@ -106,12 +103,36 @@ RSpec.describe FinApps::REST::Screenings do
106
103
  end
107
104
  end
108
105
 
106
+ describe '#last' do
107
+ subject(:last) { described_class.new(client).last(consumer_id) }
108
+
109
+ context 'with valid consumer_id' do
110
+ let(:consumer_id) { :valid_consumer_id }
111
+
112
+ it_behaves_like 'an API request'
113
+ it_behaves_like 'a successful request'
114
+ it('results have an :s_id node') do
115
+ expect(results).to have_key(:s_id)
116
+ end
117
+ end
118
+
119
+ context 'with invalid consumer_id' do
120
+ let(:consumer_id) { :invalid_consumer_id }
121
+
122
+ it { expect(results).to be_nil }
123
+ it { expect(error_messages).not_to be_empty }
124
+ end
125
+
126
+ context 'when missing consumer_id' do
127
+ let(:consumer_id) { nil }
128
+
129
+ it_behaves_like 'a request that raises an error'
130
+ end
131
+ end
132
+
109
133
  describe '#create' do
110
134
  subject(:create) { described_class.new(client).create(params) }
111
135
 
112
- let(:results) { create[0] }
113
- let(:error_messages) { create[1] }
114
-
115
136
  context 'with valid params' do
116
137
  let(:params) do
117
138
  {
@@ -153,8 +174,6 @@ RSpec.describe FinApps::REST::Screenings do
153
174
  subject(:update) { described_class.new(client).update(id, params) }
154
175
 
155
176
  let(:params) { {} }
156
- let(:results) { update[0] }
157
- let(:error_messages) { update[1] }
158
177
 
159
178
  context 'with valid session id' do
160
179
  let(:id) { :valid_id }
@@ -199,9 +218,6 @@ RSpec.describe FinApps::REST::Screenings do
199
218
  describe '#destroy' do
200
219
  subject(:destroy) { described_class.new(client).destroy(id) }
201
220
 
202
- let(:results) { destroy[0] }
203
- let(:error_messages) { destroy[1] }
204
-
205
221
  context 'with valid session id' do
206
222
  let(:id) { :valid_id }
207
223
 
@@ -502,6 +502,10 @@ module Fake
502
502
 
503
503
  private
504
504
 
505
+ def resource_not_found
506
+ json_response 404, 'resource_not_found.json'
507
+ end
508
+
505
509
  def json_response(response_code, file_name)
506
510
  http_response :json, response_code, file_name
507
511
  end
@@ -0,0 +1,13 @@
1
+ {
2
+ "s_id": "ee8d7a39-5bf2-4e80-9e03-2f88897c4ebd",
3
+ "date_created": "2021-02-05T21:23:50.368Z",
4
+ "date_modified": "2021-02-05T21:23:50.368Z",
5
+ "consumer": {
6
+ "public_id": "368bf4ac-cd8c-4059-62a7-f19a9d7501df",
7
+ "email": "christopher+1612473370669@financialapps.com",
8
+ "first_name": "Dayna",
9
+ "last_name": "Langosh"
10
+ },
11
+ "operator_id": "5d2afdf9-11fc-425b-704d-d74ca7626de8",
12
+ "progress": 0
13
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "session not found with consumer id (invalid_consumer_id)"
4
+ ]
5
+ }
@@ -4,39 +4,38 @@ module Fake
4
4
  module ScreeningsRoutes
5
5
  class << self
6
6
  def included(base)
7
- list_routes base
8
- resume_routes base
9
- update_routes_invalid_id base
10
- update_routes base
11
- destroy_routes base
12
- create_routes base
7
+ resource = "/#{base.version}/screenings"
13
8
 
14
- super
9
+ list_routes base, resource
10
+ resume_routes base, resource
11
+ update_routes base, resource
12
+ destroy_routes base, resource
13
+ create_routes base, resource
15
14
  end
16
15
 
17
- def list_routes(base)
18
- base.get("/#{base.version}/screenings") do
19
- json_response 200, 'screening_list.json'
16
+ def list_routes(base, resource)
17
+ base.get(resource) { json_response 200, 'screening_list.json' }
18
+ base.get("#{resource}/:consumer_id/consumer") do
19
+ if params[:consumer_id] == 'invalid_consumer_id'
20
+ json_response 404, 'session_not_found.json'
21
+ else
22
+ json_response 200, 'screenings/last_session.json'
23
+ end
20
24
  end
21
25
  end
22
26
 
23
- def resume_routes(base)
24
- base.get("/#{base.version}/screenings/invalid_id/resume") do
25
- json_response 404, 'resource_not_found.json'
26
- end
27
- base.get("/#{base.version}/screenings/valid_id/resume") do
27
+ def resume_routes(base, resource)
28
+ base.get("#{resource}/:session_id/resume") do
29
+ return resource_not_found if params[:session_id] == 'invalid_id'
30
+
28
31
  json_response 200, 'screening.json'
29
32
  end
30
33
  end
31
34
 
32
- def update_routes_invalid_id(base)
33
- base.put("/#{base.version}/screenings/invalid_id") do
34
- json_response 404, 'resource_not_found.json'
35
- end
36
- end
35
+ def update_routes(base, resource)
36
+ base.put("#{resource}/:session_id") do
37
+ return resource_not_found if params[:session_id] == 'invalid_id'
37
38
 
38
- def update_routes(base)
39
- base.put("/#{base.version}/screenings/valid_id") do
40
39
  request.body.rewind
41
40
  request_payload = JSON.parse request.body.read
42
41
  if request_payload['question_id'] == 'invalid'
@@ -47,8 +46,8 @@ module Fake
47
46
  end
48
47
  end
49
48
 
50
- def create_routes(base)
51
- base.post("/#{base.version}/screenings") do
49
+ def create_routes(base, resource)
50
+ base.post(resource) do
52
51
  request.body.rewind
53
52
  request_payload = JSON.parse request.body.read
54
53
  if request_payload.key? 'email'
@@ -59,8 +58,8 @@ module Fake
59
58
  end
60
59
  end
61
60
 
62
- def destroy_routes(base)
63
- base.delete("/#{base.version}/screenings/:session_id") do
61
+ def destroy_routes(base, resource)
62
+ base.delete("#{resource}/:session_id") do
64
63
  if params[:session_id] == 'valid_id'
65
64
  status 200
66
65
  else
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.1.0
4
+ version: 5.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-05 00:00:00.000000000 Z
11
+ date: 2021-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: finapps_core
@@ -444,6 +444,8 @@ files:
444
444
  - spec/support/fixtures/screening.json
445
445
  - spec/support/fixtures/screening_invalid_update.json
446
446
  - spec/support/fixtures/screening_list.json
447
+ - spec/support/fixtures/screenings/last_session.json
448
+ - spec/support/fixtures/screenings/session_not_found_with_id.json
447
449
  - spec/support/fixtures/session_not_found.json
448
450
  - spec/support/fixtures/sign_url.json
449
451
  - spec/support/fixtures/signed_document.pdf