finapps 5.1.0 → 5.2.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: 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