finapps 5.0.41 → 5.0.47

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,6 +10,10 @@ RSpec.describe FinApps::REST::SignedDocumentsDownloads do
10
10
  let(:document) { described_class.new(api_client) }
11
11
 
12
12
  describe '#show' do
13
+ subject(:show) do
14
+ document.show(:consumer_id, :signature_request_id)
15
+ end
16
+
13
17
  context 'when missing signature request id' do
14
18
  subject(:show) { document.show(:consumer_id, nil) }
15
19
 
@@ -26,13 +30,6 @@ RSpec.describe FinApps::REST::SignedDocumentsDownloads do
26
30
  end
27
31
  end
28
32
 
29
- subject(:show) do
30
- document.show(
31
- :consumer_id,
32
- :signature_request_id
33
- )
34
- end
35
-
36
33
  it_behaves_like 'an API request'
37
34
  it_behaves_like 'a successful request'
38
35
  end
@@ -10,6 +10,8 @@ RSpec.describe FinApps::REST::VerixDocuments do
10
10
  let(:document) { described_class.new(api_client) }
11
11
 
12
12
  describe '#list' do
13
+ subject { document.list(:record_id) }
14
+
13
15
  context 'when missing parameters' do
14
16
  subject(:list) { document.list(nil) }
15
17
 
@@ -18,13 +20,13 @@ RSpec.describe FinApps::REST::VerixDocuments do
18
20
  end
19
21
  end
20
22
 
21
- subject { document.list(:record_id) }
22
-
23
23
  it_behaves_like 'an API request'
24
24
  it_behaves_like 'a successful request'
25
25
  end
26
26
 
27
27
  describe '#show' do
28
+ subject { document.show(:record_id, :document_id) }
29
+
28
30
  context 'when missing record_id' do
29
31
  subject(:show) { document.show(nil, :document_id) }
30
32
 
@@ -37,8 +39,6 @@ RSpec.describe FinApps::REST::VerixDocuments do
37
39
  it { expect { show }.to raise_error(FinAppsCore::MissingArgumentsError) }
38
40
  end
39
41
 
40
- subject { document.show(:record_id, :document_id) }
41
-
42
42
  it_behaves_like 'an API request'
43
43
  it_behaves_like 'a successful request'
44
44
  end
@@ -32,7 +32,7 @@ RSpec.configure do |config|
32
32
  config.before do
33
33
  base_url =
34
34
  "#{FinAppsCore::REST::Defaults::DEFAULTS[:host]}/v#{FinAppsCore::REST::Defaults::API_VERSION}/"
35
- stub_request(:any, /#{base_url}/).to_rack(::FakeApi)
35
+ stub_request(:any, /#{base_url}/).to_rack(::Fake::FakeApi)
36
36
  end
37
37
  WebMock.disable_net_connect!(allow: 'codeclimate.com')
38
38
  end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Fake
4
+ module DocumentsUploadsRoutes
5
+ class << self
6
+ def included(base)
7
+ base.get("/#{base.version}/consumers/:consumer_id/documents/:doc_id?thumbnail=false") do
8
+ pdf_response 'signed_document.pdf'
9
+ end
10
+ destroy_routes(base)
11
+ destroy_by_consumer_routes(base)
12
+ super
13
+ end
14
+
15
+ def destroy_routes(base)
16
+ base.delete("/#{base.version}/documents/orders/valid_order_id/valid_doc_id") { status 204 }
17
+ base.delete("/#{base.version}/documents/orders/valid_order_id/invalid_doc_id") do
18
+ json_response 404, 'resource_not_found.json'
19
+ end
20
+ base.delete("/#{base.version}/documents/orders/invalid_order_id/valid_doc_id") do
21
+ json_response 404, 'resource_not_found.json'
22
+ end
23
+ end
24
+
25
+ def destroy_by_consumer_routes(base)
26
+ base.delete("/#{base.version}/consumers/valid_consumer_id/documents/valid_document_id") { status 204 }
27
+ base.delete("/#{base.version}/consumers/invalid_consumer_id/documents/invalid_document_id") do
28
+ json_response 404, 'resource_not_found.json'
29
+ end
30
+ base.delete("/#{base.version}/consumers/invalid_consumer_id/documents/valid_document_id") do
31
+ json_response 404, 'resource_not_found.json'
32
+ end
33
+ base.delete("/#{base.version}/consumers/valid_consumer_id/documents/invalid_document_id") do
34
+ json_response 404, 'resource_not_found.json'
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -1,522 +1,550 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'sinatra/base'
4
+ require_relative 'documents_uploads_routes'
5
+
6
+ module Fake
7
+ # rubocop:disable Metrics/ClassLength
8
+ # the FakeApi class is used to mock API requests while testing.
9
+ class FakeApi < Sinatra::Base
10
+ def self.version
11
+ "v#{FinAppsCore::REST::Defaults::API_VERSION}"
12
+ end
4
13
 
5
- # the FakeApi class is used to mock API requests while testing.
6
- class FakeApi < Sinatra::Base
7
- def self.version
8
- "v#{FinAppsCore::REST::Defaults::API_VERSION}"
9
- end
10
-
11
- # resource
12
- post("/#{version}/resources") { json_response 201, 'resource.json' }
13
- get("/#{version}/resources/:id") { json_response 200, 'resource.json' }
14
- get("/#{version}/resources") { json_response 200, 'resources.json' }
15
- put("/#{version}/resources") { json_response 201, 'resource.json' }
16
- delete("/#{version}/resources/:id") { status 202 }
14
+ # resource
15
+ post("/#{version}/resources") { json_response 201, 'resource.json' }
16
+ get("/#{version}/resources/:id") { json_response 200, 'resource.json' }
17
+ get("/#{version}/resources") { json_response 200, 'resources.json' }
18
+ put("/#{version}/resources") { json_response 201, 'resource.json' }
19
+ delete("/#{version}/resources/:id") { status 202 }
17
20
 
18
- # verix_metadata
19
- get("/#{version}/v/metadata") do
20
- json_response 200, 'verix/metadata.json'
21
- end
21
+ # verix_metadata
22
+ get("/#{version}/v/metadata") do
23
+ json_response 200, 'verix/metadata.json'
24
+ end
22
25
 
23
- # verix_records
24
- get("/#{version}/v/record") do
25
- json_response 200, 'verix/record/list.json'
26
- end
27
- post("/#{version}/v/record") do
28
- json_response 200, 'verix/record/create.json'
29
- end
26
+ # verix_records
27
+ get("/#{version}/v/record") do
28
+ json_response 200, 'verix/record/list.json'
29
+ end
30
+ post("/#{version}/v/record") do
31
+ json_response 200, 'verix/record/create.json'
32
+ end
30
33
 
31
- # verix_pdf_documents
32
- get("/#{version}/v/record/:record_id/file/:provider_id") do
33
- pdf_response 'verix/document/document.pdf'
34
- end
34
+ # verix_pdf_documents
35
+ get("/#{version}/v/record/:record_id/file/:provider_id") do
36
+ pdf_response 'verix/document/document.pdf'
37
+ end
35
38
 
36
- # verix_documents
37
- get("/#{version}/v/record/:record_id/document") do
38
- json_response 200, 'verix/document/show.json'
39
- end
40
- get("/#{version}/v/record/:record_id/document/:document_id") do
41
- json_response 200, 'verix/document/list.json'
42
- end
39
+ # verix_documents
40
+ get("/#{version}/v/record/:record_id/document") do
41
+ json_response 200, 'verix/document/show.json'
42
+ end
43
+ get("/#{version}/v/record/:record_id/document/:document_id") do
44
+ json_response 200, 'verix/document/list.json'
45
+ end
43
46
 
44
- # plaid_webhook/metadata
45
- get("/#{version}/p/metadata") do
46
- tenant_token = request.env['HTTP_X_TENANT_TOKEN']
47
- if tenant_token == 'invalid_tenant_token'
48
- json_response 404, 'invalid_tenant_credentials.json'
49
- else
50
- json_response 200, 'plaid/webhook.json'
47
+ # plaid_webhook/metadata
48
+ get("/#{version}/p/metadata") do
49
+ tenant_token = request.env['HTTP_X_TENANT_TOKEN']
50
+ if tenant_token == 'invalid_tenant_token'
51
+ json_response 404, 'invalid_tenant_credentials.json'
52
+ else
53
+ json_response 200, 'plaid/webhook.json'
54
+ end
51
55
  end
52
- end
53
56
 
54
- # plaid_institution_consumer
55
- get("/#{version}/p/institution/consumer/:consumer_institution_id") do
56
- json_response 200, 'plaid/institution/consumer/show.json'
57
- end
58
- get("/#{version}/p/institution/consumer/:consumer_institution_id/account") do
59
- json_response 200, 'plaid/institution/consumer/show_accounts.json'
60
- end
61
- get("/#{version}/p/institution/consumer") do
62
- tenant_token = request.env['HTTP_X_TENANT_TOKEN']
63
- if tenant_token == 'invalid_tenant_token'
64
- json_response 404, 'resource_not_found.json'
65
- else
66
- json_response 200, 'plaid/institution/consumer/list.json'
57
+ # plaid_institution_consumer
58
+ get("/#{version}/p/institution/consumer/:consumer_institution_id") do
59
+ json_response 200, 'plaid/institution/consumer/show.json'
67
60
  end
68
- end
69
- post("/#{version}/p/institution/consumer") do
70
- tenant_token = request.env['HTTP_X_TENANT_TOKEN']
71
- if tenant_token == 'invalid_tenant_token'
72
- json_response 404, 'resource_not_found.json'
73
- else
74
- json_response 200, 'plaid/institution/consumer/add.json'
61
+ get("/#{version}/p/institution/consumer/:consumer_institution_id/account") do
62
+ json_response 200, 'plaid/institution/consumer/show_accounts.json'
75
63
  end
76
- end
77
- delete("/#{version}/p/institution/consumer/:consumer_institution_id") do
78
- status 204
79
- end
80
- put("/#{version}/p/institution/consumer/:consumer_institution_id") do
81
- status 204
82
- end
83
- get("/#{version}/p/institution/consumer/:consumer_institution_id/token") do
84
- json_response 200, 'plaid/institution/consumer/public_token.json'
85
- end
86
-
87
- # plaid_accounts
88
- get("/#{version}/p/account") do
89
- json_response 200, 'plaid/account/list.json'
90
- end
91
- get("/#{version}/p/account/:account_id") do
92
- json_response 200, 'plaid/account/show.json'
93
- end
94
- put("/#{version}/p/accounts/permissions") do
95
- request.body.rewind
96
- request_payload = JSON.parse request.body.read
97
- if request_payload.is_a? Array
64
+ get("/#{version}/p/institution/consumer") do
65
+ tenant_token = request.env['HTTP_X_TENANT_TOKEN']
66
+ if tenant_token == 'invalid_tenant_token'
67
+ json_response 404, 'resource_not_found.json'
68
+ else
69
+ json_response 200, 'plaid/institution/consumer/list.json'
70
+ end
71
+ end
72
+ post("/#{version}/p/institution/consumer") do
73
+ tenant_token = request.env['HTTP_X_TENANT_TOKEN']
74
+ if tenant_token == 'invalid_tenant_token'
75
+ json_response 404, 'resource_not_found.json'
76
+ else
77
+ json_response 200, 'plaid/institution/consumer/add.json'
78
+ end
79
+ end
80
+ delete("/#{version}/p/institution/consumer/:consumer_institution_id") do
98
81
  status 204
99
- else
100
- json_response 400, 'invalid_request_body.json'
101
82
  end
102
- end
103
- delete("/#{version}/p/accounts/permissions") do
104
- request.body.rewind
105
- request_payload = JSON.parse request.body.read
106
- if request_payload.is_a? Array
83
+ put("/#{version}/p/institution/consumer/:consumer_institution_id") do
107
84
  status 204
108
- else
109
- json_response 400, 'invalid_request_body.json'
110
85
  end
111
- end
86
+ get("/#{version}/p/institution/consumer/:consumer_institution_id/token") do
87
+ json_response 200, 'plaid/institution/consumer/public_token.json'
88
+ end
112
89
 
113
- # plaid_institution_logos
114
- get("/#{version}/p/institution/logo/:inst_id") do
115
- png_response 'plaid/institution/logo.png'
116
- end
90
+ # plaid_accounts
91
+ get("/#{version}/p/account") do
92
+ json_response 200, 'plaid/account/list.json'
93
+ end
94
+ get("/#{version}/p/account/:account_id") do
95
+ json_response 200, 'plaid/account/show.json'
96
+ end
97
+ put("/#{version}/p/accounts/permissions") do
98
+ request.body.rewind
99
+ request_payload = JSON.parse request.body.read
100
+ if request_payload.is_a? Array
101
+ status 204
102
+ else
103
+ json_response 400, 'invalid_request_body.json'
104
+ end
105
+ end
106
+ delete("/#{version}/p/accounts/permissions") do
107
+ request.body.rewind
108
+ request_payload = JSON.parse request.body.read
109
+ if request_payload.is_a? Array
110
+ status 204
111
+ else
112
+ json_response 400, 'invalid_request_body.json'
113
+ end
114
+ end
117
115
 
118
- # version
119
- get("/#{version}/version") { 'Version => 2.1.29-.20161208.172810' }
116
+ # plaid_institution_logos
117
+ get("/#{version}/p/institution/logo/:inst_id") do
118
+ png_response 'plaid/institution/logo.png'
119
+ end
120
120
 
121
- # tenants
122
- get("/#{version}/settings/tenant") do
123
- json_response 200, 'tenant_settings.json'
124
- end
125
- put("/#{version}/settings/tenant") do
126
- request.body.rewind
127
- request_payload = JSON.parse request.body.read
128
- if request_payload['bad_params']
121
+ # version
122
+ get("/#{version}/version") { 'Version => 2.1.29-.20161208.172810' }
123
+
124
+ # tenants
125
+ get("/#{version}/settings/tenant") do
126
+ json_response 200, 'tenant_settings.json'
127
+ end
128
+ put("/#{version}/settings/tenant") do
129
+ request.body.rewind
130
+ request_payload = JSON.parse request.body.read
131
+ if request_payload['bad_params']
132
+ json_response 404, 'resource_not_found.json'
133
+ else
134
+ status 204
135
+ end
136
+ end
137
+ get("/#{version}/settings/app") do
138
+ json_response 200, 'tenant_app_settings.json'
139
+ end
140
+ put("/#{version}/settings/app") do
141
+ request.body.rewind
142
+ request_payload = JSON.parse request.body.read
143
+ if request_payload['pdf_statement_months']
144
+ status 204
145
+ else
146
+ json_response 404, 'resource_not_found.json'
147
+ end
148
+ end
149
+
150
+ # orders
151
+ post("/#{version}/orders/valid_token") do
152
+ json_response 200, 'order_token.json'
153
+ end
154
+ post("/#{version}/orders/invalid_token") do
129
155
  json_response 404, 'resource_not_found.json'
130
- else
131
- status 204
132
156
  end
133
- end
134
- get("/#{version}/settings/app") do
135
- json_response 200, 'tenant_app_settings.json'
136
- end
137
- put("/#{version}/settings/app") do
138
- request.body.rewind
139
- request_payload = JSON.parse request.body.read
140
- if request_payload['pdf_statement_months']
141
- status 204
142
- else
157
+ get("/#{version}/orders/valid_id") { json_response 200, 'order.json' }
158
+ get("/#{version}/orders") { json_response 200, 'orders.json' }
159
+ get("/#{version}/orders/valid_id/report.:format") do
160
+ json_response 200, 'order_report.json'
161
+ end
162
+ get("/#{version}/orders/invalid_id/report.:format") do
143
163
  json_response 404, 'resource_not_found.json'
144
164
  end
145
- end
146
-
147
- # orders
148
- post("/#{version}/orders/valid_token") do
149
- json_response 200, 'order_token.json'
150
- end
151
- post("/#{version}/orders/invalid_token") do
152
- json_response 404, 'resource_not_found.json'
153
- end
154
- get("/#{version}/orders/valid_id") { json_response 200, 'order.json' }
155
- get("/#{version}/orders") { json_response 200, 'orders.json' }
156
- get("/#{version}/orders/valid_id/report.:format") do
157
- json_response 200, 'order_report.json'
158
- end
159
- get("/#{version}/orders/invalid_id/report.:format") do
160
- json_response 404, 'resource_not_found.json'
161
- end
162
- get("/#{version}/orders/valid_id/status") do
163
- json_response 200, 'order_status.json'
164
- end
165
- get("/#{version}/orders/invalid_id/status") do
166
- json_response 404, 'resource_not_found.json'
167
- end
168
- put("/#{version}/orders/valid_id/cancel") { status 204 }
169
- put("/#{version}/orders/invalid_id/cancel") do
170
- json_response 404, 'resource_not_found.json'
171
- end
172
- put("/#{version}/orders/valid_id/notify") { status 204 }
173
- put("/#{version}/orders/invalid_id/notify") do
174
- json_response 404, 'resource_not_found.json'
175
- end
176
- put("/#{version}/orders/valid_id/refresh") do
177
- json_response 200, 'order_refresh.json'
178
- end
179
- put("/#{version}/orders/invalid_id/refresh") do
180
- json_response 404, 'resource_not_found.json'
181
- end
182
- put("/#{version}/orders/invalid_id") do
183
- json_response 404, 'resource_not_found.json'
184
- end
185
- put("/#{version}/orders/valid_id") { status 204 }
186
- put("/#{version}/orders") do
187
- request.body.rewind
188
- request_payload = JSON.parse request.body.read
189
- if request_payload['params'] == 'invalid'
190
- json_response 400, 'invalid_request_body.json'
191
- else
192
- status 204
165
+ get("/#{version}/orders/valid_id/status") do
166
+ json_response 200, 'order_status.json'
193
167
  end
194
- end
195
- post("/#{version}/orders") do
196
- request.body.rewind
197
- request_payload = JSON.parse request.body.read
198
- if %w[applicant institutions product].all? {|s| request_payload.key? s }
199
- json_response 200, 'order_token.json'
200
- else
201
- json_response 400, 'invalid_request_body.json'
168
+ get("/#{version}/orders/invalid_id/status") do
169
+ json_response 404, 'resource_not_found.json'
170
+ end
171
+ put("/#{version}/orders/valid_id/cancel") { status 204 }
172
+ put("/#{version}/orders/invalid_id/cancel") do
173
+ json_response 404, 'resource_not_found.json'
174
+ end
175
+ put("/#{version}/orders/valid_id/notify") { status 204 }
176
+ put("/#{version}/orders/invalid_id/notify") do
177
+ json_response 404, 'resource_not_found.json'
178
+ end
179
+ put("/#{version}/orders/valid_id/refresh") do
180
+ json_response 200, 'order_refresh.json'
181
+ end
182
+ put("/#{version}/orders/invalid_id/refresh") do
183
+ json_response 404, 'resource_not_found.json'
184
+ end
185
+ put("/#{version}/orders/invalid_id") do
186
+ json_response 404, 'resource_not_found.json'
187
+ end
188
+ put("/#{version}/orders/valid_id") { status 204 }
189
+ put("/#{version}/orders") do
190
+ request.body.rewind
191
+ request_payload = JSON.parse request.body.read
192
+ if request_payload['params'] == 'invalid'
193
+ json_response 400, 'invalid_request_body.json'
194
+ else
195
+ status 204
196
+ end
197
+ end
198
+ post("/#{version}/orders") do
199
+ request.body.rewind
200
+ request_payload = JSON.parse request.body.read
201
+ if %w[applicant institutions product].all? {|s| request_payload.key? s }
202
+ json_response 200, 'order_token.json'
203
+ else
204
+ json_response 400, 'invalid_request_body.json'
205
+ end
202
206
  end
203
- end
204
207
 
205
- # documents_orders
206
- get("/#{version}/documents/orders") do
207
- if params[:filter]&.include?('"status":2')
208
- json_response 200, 'documents_orders_none.json'
209
- else
210
- json_response 200, 'documents_orders.json'
208
+ # documents_orders
209
+ get("/#{version}/documents/orders") do
210
+ if params[:filter]&.include?('"status":2')
211
+ json_response 200, 'documents_orders_none.json'
212
+ else
213
+ json_response 200, 'documents_orders.json'
214
+ end
211
215
  end
212
- end
213
- get("/#{version}/documents/orders/valid_order_id") do
214
- json_response 200, 'documents_order.json'
215
- end
216
- get("/#{version}/documents/orders/invalid_order_id") do
217
- json_response 404, 'resource_not_found.json'
218
- end
219
- post("/#{version}/documents/orders") do
220
- request.body.rewind
221
- request_payload = JSON.parse request.body.read
222
- if %w[applicant esign_documents tag].all? {|s| request_payload.key? s }
216
+ get("/#{version}/documents/orders/valid_order_id") do
223
217
  json_response 200, 'documents_order.json'
224
- else
225
- json_response 400, 'invalid_request_body.json'
226
218
  end
227
- end
228
- put("/#{version}/documents/orders/valid_order_id") do
229
- request.body.rewind
230
- request_payload = JSON.parse request.body.read
231
- if request_payload['tag'] == 'invalid'
232
- json_response 400, 'invalid_request_body.json'
233
- else
234
- status 204
219
+ get("/#{version}/documents/retrieve_order") do
220
+ json_response 200, 'documents/retrieve_order.json'
221
+ end
222
+ get("/#{version}/documents/orders/invalid_order_id") do
223
+ json_response 404, 'resource_not_found.json'
224
+ end
225
+ post("/#{version}/documents/orders") do
226
+ request.body.rewind
227
+ request_payload = JSON.parse request.body.read
228
+ if %w[applicant esign_documents tag].all? {|s| request_payload.key? s }
229
+ json_response 200, 'documents_order.json'
230
+ else
231
+ json_response 400, 'invalid_request_body.json'
232
+ end
233
+ end
234
+ put("/#{version}/documents/orders/valid_order_id") do
235
+ request.body.rewind
236
+ request_payload = JSON.parse request.body.read
237
+ if request_payload['tag'] == 'invalid'
238
+ json_response 400, 'invalid_request_body.json'
239
+ else
240
+ status 204
241
+ end
242
+ end
243
+ put("/#{version}/documents/orders/invalid_order_id") do
244
+ json_response 400, 'invalid_order_id.json'
245
+ end
246
+ delete("/#{version}/documents/orders/valid_order_id") { status 204 }
247
+ delete("/#{version}/documents/orders/invalid_order_id") do
248
+ json_response 404, 'resource_not_found.json'
249
+ end
250
+ get("/#{version}/documents/orders/valid_order_id/sign_url/valid_signature_id") do
251
+ json_response 200, 'sign_url.json'
252
+ end
253
+ get("/#{version}/documents/orders/invalid_order_id/sign_url/valid_signature_id") do
254
+ json_response 400, 'invalid_order_id.json'
255
+ end
256
+ get("/#{version}/documents/orders/valid_order_id/sign_url/invalid_signature_id") do
257
+ json_response 404, 'invalid_signature_id.json'
235
258
  end
236
- end
237
- put("/#{version}/documents/orders/invalid_order_id") do
238
- json_response 400, 'invalid_order_id.json'
239
- end
240
- delete("/#{version}/documents/orders/valid_order_id") { status 204 }
241
- delete("/#{version}/documents/orders/invalid_order_id") do
242
- json_response 404, 'resource_not_found.json'
243
- end
244
- get("/#{version}/documents/orders/valid_order_id/sign_url/valid_signature_id") do
245
- json_response 200, 'sign_url.json'
246
- end
247
- get("/#{version}/documents/orders/invalid_order_id/sign_url/valid_signature_id") do
248
- json_response 400, 'invalid_order_id.json'
249
- end
250
- get("/#{version}/documents/orders/valid_order_id/sign_url/invalid_signature_id") do
251
- json_response 404, 'invalid_signature_id.json'
252
- end
253
259
 
254
- # documents_uploads
255
- get("/#{version}/consumers/:consumer_id/documents/:doc_id?thumbnail=false") do
256
- pdf_response 'signed_document.pdf'
257
- end
258
- delete("/#{version}/documents/orders/valid_order_id/valid_doc_id") { status 204 }
259
- delete("/#{version}/documents/orders/valid_order_id/invalid_doc_id") do
260
- json_response 404, 'resource_not_found.json'
261
- end
262
- delete("/#{version}/documents/orders/invalid_order_id/valid_doc_id") do
263
- json_response 404, 'resource_not_found.json'
264
- end
260
+ # documents_uploads
261
+ include DocumentsUploadsRoutes
265
262
 
266
- # documents orders notifications
267
- post("/#{version}/documents/orders/valid_id/notify") { status 204 }
268
- post("/#{version}/documents/orders/invalid_id/notify") do
269
- json_response 400, 'invalid_order_id.json'
270
- end
263
+ # documents orders notifications
264
+ post("/#{version}/documents/orders/valid_id/notify") { status 204 }
265
+ post("/#{version}/documents/orders/invalid_id/notify") do
266
+ json_response 400, 'invalid_order_id.json'
267
+ end
271
268
 
272
- # signed documents downloads
273
- get("/#{version}/consumers/:consumer_id/documents/:signature_request_id") do
274
- pdf_response 'signed_document.pdf'
275
- end
269
+ # signed documents downloads
270
+ get("/#{version}/consumers/:consumer_id/documents/:signature_request_id") do
271
+ pdf_response 'signed_document.pdf'
272
+ end
276
273
 
277
- # esign_templates
278
- get("/#{version}/esign_templates") { json_response 200, 'esign_templates.json' }
274
+ # esign_templates
275
+ get("/#{version}/esign_templates") { json_response 200, 'esign_templates.json' }
279
276
 
280
- # document_upload_types
281
- get("/#{version}/documents/upload_types") { json_response 200, 'upload_types.json' }
277
+ # document_upload_types
278
+ get("/#{version}/documents/upload_types") { json_response 200, 'upload_types.json' }
282
279
 
283
- # consumers
284
- get("/#{version}/consumers") do
285
- json_response 200, 'users.json'
286
- end
287
- get("/#{version}/consumers/valid_public_id") do
288
- json_response 200, 'user.json'
289
- end
290
- get("/#{version}/consumers/invalid_public_id") do
291
- json_response 404, 'resource_not_found.json'
292
- end
293
- post("/#{version}/consumers") do
294
- request.body.rewind
295
- request_payload = JSON.parse request.body.read
296
- if request_payload['password']
297
- json_response 201, 'user.json'
298
- else
299
- json_response 400, 'invalid_request_body.json'
280
+ # screenings
281
+ get("/#{version}/screenings") { json_response 200, 'screening_list.json' }
282
+ get("/#{version}/screenings/invalid_id/resume") do
283
+ json_response 404, 'resource_not_found.json'
284
+ end
285
+ get("/#{version}/screenings/valid_id/resume") { json_response 200, 'screening.json' }
286
+ put("/#{version}/screenings/invalid_id") do
287
+ json_response 404, 'resource_not_found.json'
288
+ end
289
+ put("/#{version}/screenings/valid_id") do
290
+ request.body.rewind
291
+ request_payload = JSON.parse request.body.read
292
+ if request_payload['question_id'] == 'invalid'
293
+ json_response 400, 'screening_invalid_update.json'
294
+ else
295
+ json_response 200, 'screening.json'
296
+ end
300
297
  end
301
- end
302
- put("/#{version}/consumers/valid_public_id") { status 204 }
303
- put("/#{version}/consumers/invalid_public_id") do
304
- json_response 400, 'invalid_user_id.json'
305
- end
306
- put("/#{version}/consumers/valid_public_id/password") do
307
- json_response 200, 'user.json'
308
- end
309
- put("/#{version}/consumers/invalid_public_id/password") do
310
- json_response 404, 'resource_not_found.json'
311
- end
312
- delete("/#{version}/consumers/valid_public_id") { status 204 }
313
- delete("/#{version}/consumers/invalid_public_id") do
314
- json_response 404, 'resource_not_found.json'
315
- end
316
- post("/#{version}/logout") { status 204 }
317
298
 
318
- # operators
319
- get("/#{version}/operators") { json_response 200, 'operator_list.json' }
320
- get("/#{version}/operators/invalid_id") do
321
- json_response 404, 'resource_not_found.json'
322
- end
323
- get("/#{version}/operators/valid_id") { json_response 200, 'operator.json' }
324
- delete("/#{version}/operators/invalid_id") do
325
- json_response 404, 'resource_not_found.json'
326
- end
327
- delete("/#{version}/operators/valid_id") { status 204 }
328
- post("/#{version}/operators/password/change") do
329
- json_response 200, 'operator.json'
330
- end
331
- put("/#{version}/operators/invalid_id") do
332
- json_response 404, 'resource_not_found.json'
333
- end
334
- put("/#{version}/operators/valid_id") { json_response 200, 'operator.json' }
335
- put("/#{version}/operators/valid_id/assign") { status 204 }
336
- put("/#{version}/operators/invalid_id/assign") do
337
- json_response 404, 'resource_not_found.json'
338
- end
339
- post("/#{version}/operators/password/forgot") do
340
- json_response 200, 'operator_forgot_password.json'
341
- end
342
- post("/#{version}/operators/password/reset") do
343
- request.body.rewind
344
- request_payload = JSON.parse request.body.read
345
- if request_payload['params'] == 'valid'
299
+ post("/#{version}/screenings") do
300
+ request.body.rewind
301
+ request_payload = JSON.parse request.body.read
302
+ if request_payload.key? 'email'
303
+ json_response 201, 'screening.json'
304
+ else
305
+ json_response 400, 'invalid_request_body.json'
306
+ end
307
+ end
308
+
309
+ # consumers
310
+ get("/#{version}/consumers") do
311
+ json_response 200, 'users.json'
312
+ end
313
+ get("/#{version}/consumers/valid_public_id") do
314
+ json_response 200, 'user.json'
315
+ end
316
+ get("/#{version}/consumers/invalid_public_id") do
317
+ json_response 404, 'resource_not_found.json'
318
+ end
319
+ post("/#{version}/consumers") do
320
+ request.body.rewind
321
+ request_payload = JSON.parse request.body.read
322
+ if request_payload['password']
323
+ json_response 201, 'user.json'
324
+ else
325
+ json_response 400, 'invalid_request_body.json'
326
+ end
327
+ end
328
+ put("/#{version}/consumers/valid_public_id") { status 204 }
329
+ put("/#{version}/consumers/invalid_public_id") do
330
+ json_response 400, 'invalid_user_id.json'
331
+ end
332
+ put("/#{version}/consumers/valid_public_id/password") do
333
+ json_response 200, 'user.json'
334
+ end
335
+ put("/#{version}/consumers/invalid_public_id/password") do
336
+ json_response 404, 'resource_not_found.json'
337
+ end
338
+ delete("/#{version}/consumers/valid_public_id") { status 204 }
339
+ delete("/#{version}/consumers/invalid_public_id") do
340
+ json_response 404, 'resource_not_found.json'
341
+ end
342
+ post("/#{version}/logout") { status 204 }
343
+
344
+ # operators
345
+ get("/#{version}/operators") { json_response 200, 'operator_list.json' }
346
+ get("/#{version}/operators/invalid_id") do
347
+ json_response 404, 'resource_not_found.json'
348
+ end
349
+ get("/#{version}/operators/valid_id") { json_response 200, 'operator.json' }
350
+ delete("/#{version}/operators/invalid_id") do
351
+ json_response 404, 'resource_not_found.json'
352
+ end
353
+ delete("/#{version}/operators/valid_id") { status 204 }
354
+ post("/#{version}/operators/password/change") do
346
355
  json_response 200, 'operator.json'
347
- else
348
- json_response 400, 'invalid_request_body.json'
349
356
  end
350
- end
351
- post("/#{version}/operators") do
352
- request.body.rewind
353
- request_payload = JSON.parse request.body.read
354
- if request_payload['params'] == 'valid'
355
- json_response 201, 'operator.json'
356
- else
357
- json_response 400, 'invalid_request_body.json'
357
+ put("/#{version}/operators/invalid_id") do
358
+ json_response 404, 'resource_not_found.json'
359
+ end
360
+ put("/#{version}/operators/valid_id") { json_response 200, 'operator.json' }
361
+ put("/#{version}/operators/valid_id/assign") { status 204 }
362
+ put("/#{version}/operators/invalid_id/assign") do
363
+ json_response 404, 'resource_not_found.json'
364
+ end
365
+ post("/#{version}/operators/password/forgot") do
366
+ json_response 200, 'operator_forgot_password.json'
367
+ end
368
+ post("/#{version}/operators/password/reset") do
369
+ request.body.rewind
370
+ request_payload = JSON.parse request.body.read
371
+ if request_payload['params'] == 'valid'
372
+ json_response 200, 'operator.json'
373
+ else
374
+ json_response 400, 'invalid_request_body.json'
375
+ end
376
+ end
377
+ post("/#{version}/operators") do
378
+ request.body.rewind
379
+ request_payload = JSON.parse request.body.read
380
+ if request_payload['params'] == 'valid'
381
+ json_response 201, 'operator.json'
382
+ else
383
+ json_response 400, 'invalid_request_body.json'
384
+ end
358
385
  end
359
- end
360
386
 
361
- # session
362
- post("/#{version}/login") do
363
- request.body.rewind
364
- request_payload = JSON.parse request.body.read
365
- if request_payload['password'] == 'valid_password'
366
- json_response(200, 'user.json')
367
- else
368
- json_response(401, 'unauthorized.json')
387
+ # session
388
+ post("/#{version}/login") do
389
+ request.body.rewind
390
+ request_payload = JSON.parse request.body.read
391
+ if request_payload['password'] == 'valid_password'
392
+ json_response(200, 'user.json')
393
+ else
394
+ json_response(401, 'unauthorized.json')
395
+ end
369
396
  end
370
- end
371
- post("/#{version}/operators/login") { json_response 200, 'operator.json' }
397
+ post("/#{version}/operators/login") { json_response 200, 'operator.json' }
372
398
 
373
- # password resets
374
- post("/#{version}/tenant/valid_user_id/password") do
375
- json_response 200, 'password_reset_token.json'
376
- end
377
- post("/#{version}/tenant/invalid_user_id/password") do
378
- json_response 404, 'resource_not_found.json'
379
- end
380
- put("/#{version}/tenant/valid_user_id/password") do
381
- request.body.rewind
382
- request_payload = JSON.parse request.body.read
383
- if request_payload['token'] == 'valid_token'
384
- json_response(200, 'user.json')
385
- else
386
- json_response(400, 'invalid_request_body.json')
399
+ # password resets
400
+ post("/#{version}/tenant/valid_user_id/password") do
401
+ json_response 200, 'password_reset_token.json'
402
+ end
403
+ post("/#{version}/tenant/invalid_user_id/password") do
404
+ json_response 404, 'resource_not_found.json'
405
+ end
406
+ put("/#{version}/tenant/valid_user_id/password") do
407
+ request.body.rewind
408
+ request_payload = JSON.parse request.body.read
409
+ if request_payload['token'] == 'valid_token'
410
+ json_response(200, 'user.json')
411
+ else
412
+ json_response(400, 'invalid_request_body.json')
413
+ end
414
+ end
415
+ put("/#{version}/tenant/invalid_user_id/password") do
416
+ json_response 404, 'resource_not_found.json'
387
417
  end
388
- end
389
- put("/#{version}/tenant/invalid_user_id/password") do
390
- json_response 404, 'resource_not_found.json'
391
- end
392
418
 
393
- # products
394
- get("/#{version}/products") { json_response 200, 'products.json' }
419
+ # products
420
+ get("/#{version}/products") { json_response 200, 'products.json' }
395
421
 
396
- # portfolios
397
- get("/#{version}/portfolios") { json_response 200, 'portfolios.json' }
398
- get("/#{version}/portfolios/valid_id") { json_response 200, 'portfolio.json' }
399
- get("/#{version}/portfolios/invalid_id") do
400
- json_response 404, 'resource_not_found.json'
401
- end
402
- post("/#{version}/portfolios") do
403
- request.body.rewind
404
- request_payload = JSON.parse request.body.read
405
- if request_payload['product'] == 'invalid'
406
- json_response(400, 'invalid_request_body.json')
407
- else
408
- json_response(200, 'portfolio.json')
422
+ # portfolios
423
+ get("/#{version}/portfolios") { json_response 200, 'portfolios.json' }
424
+ get("/#{version}/portfolios/valid_id") { json_response 200, 'portfolio.json' }
425
+ get("/#{version}/portfolios/invalid_id") do
426
+ json_response 404, 'resource_not_found.json'
427
+ end
428
+ post("/#{version}/portfolios") do
429
+ request.body.rewind
430
+ request_payload = JSON.parse request.body.read
431
+ if request_payload['product'] == 'invalid'
432
+ json_response(400, 'invalid_request_body.json')
433
+ else
434
+ json_response(200, 'portfolio.json')
435
+ end
436
+ end
437
+ put("/#{version}/portfolios/valid_id") { json_response 200, 'portfolio.json' }
438
+ put("/#{version}/portfolios/invalid_id") do
439
+ json_response 404, 'resource_not_found.json'
440
+ end
441
+ delete("/#{version}/portfolios/valid_id") { status 204 }
442
+ delete("/#{version}/portfolios/invalid_id") do
443
+ json_response 404, 'resource_not_found.json'
409
444
  end
410
- end
411
- put("/#{version}/portfolios/valid_id") { json_response 200, 'portfolio.json' }
412
- put("/#{version}/portfolios/invalid_id") do
413
- json_response 404, 'resource_not_found.json'
414
- end
415
- delete("/#{version}/portfolios/valid_id") { status 204 }
416
- delete("/#{version}/portfolios/invalid_id") do
417
- json_response 404, 'resource_not_found.json'
418
- end
419
445
 
420
- # alert definitions
421
- get("/#{version}/portfolio/alerts/definitions") do
422
- json_response 200, 'alert_definitions.json'
423
- end
424
- get("/#{version}/portfolio/alerts/definitions/valid_id") do
425
- json_response 200, 'alert_definition.json'
426
- end
427
- get("/#{version}/portfolio/alerts/definitions/invalid_id") do
428
- json_response 404, 'resource_not_found.json'
429
- end
446
+ # alert definitions
447
+ get("/#{version}/portfolio/alerts/definitions") do
448
+ json_response 200, 'alert_definitions.json'
449
+ end
450
+ get("/#{version}/portfolio/alerts/definitions/valid_id") do
451
+ json_response 200, 'alert_definition.json'
452
+ end
453
+ get("/#{version}/portfolio/alerts/definitions/invalid_id") do
454
+ json_response 404, 'resource_not_found.json'
455
+ end
430
456
 
431
- # alert occurrences
432
- get("/#{version}/portfolio/alerts/occurrences") do
433
- json_response 200, 'alert_occurrences.json'
434
- end
457
+ # alert occurrences
458
+ get("/#{version}/portfolio/alerts/occurrences") do
459
+ json_response 200, 'alert_occurrences.json'
460
+ end
435
461
 
436
- # portfolios alerts
437
- get("/#{version}/portfolios/valid_id/alerts") do
438
- json_response 200, 'portfolios_alerts.json'
439
- end
440
- get("/#{version}/portfolios/invalid_id/alerts") do
441
- json_response 404, 'resource_not_found.json'
442
- end
443
- put("/#{version}/portfolios/valid_id/alerts/valid_id") { status 204 }
444
- put("/#{version}/portfolios/invalid_id/alerts/invalid_id") do
445
- json_response 404, 'resource_not_found.json'
446
- end
447
- delete("/#{version}/portfolios/valid_id/alerts/valid_id") { status 204 }
448
- delete("/#{version}/portfolios/invalid_id/alerts/invalid_id") do
449
- json_response 404, 'resource_not_found.json'
450
- end
462
+ # portfolios alerts
463
+ get("/#{version}/portfolios/valid_id/alerts") do
464
+ json_response 200, 'portfolios_alerts.json'
465
+ end
466
+ get("/#{version}/portfolios/invalid_id/alerts") do
467
+ json_response 404, 'resource_not_found.json'
468
+ end
469
+ put("/#{version}/portfolios/valid_id/alerts/valid_id") { status 204 }
470
+ put("/#{version}/portfolios/invalid_id/alerts/invalid_id") do
471
+ json_response 404, 'resource_not_found.json'
472
+ end
473
+ delete("/#{version}/portfolios/valid_id/alerts/valid_id") { status 204 }
474
+ delete("/#{version}/portfolios/invalid_id/alerts/invalid_id") do
475
+ json_response 404, 'resource_not_found.json'
476
+ end
451
477
 
452
- # portfolios consumers
453
- get("/#{version}/portfolios/valid_id/consumers") do
454
- json_response 200, 'portfolios_consumers.json'
455
- end
456
- get("/#{version}/portfolios/invalid_id/consumers") do
457
- json_response 404, 'resource_not_found.json'
458
- end
459
- post("/#{version}/portfolios/valid_id/consumers") { status 204 }
460
- post("/#{version}/portfolios/invalid_id/consumers") do
461
- json_response 400, 'multiple_consumer_subscribe_error.json'
462
- end
463
- post("/#{version}/portfolios/valid_id/consumers/valid_id") { status 204 }
464
- post("/#{version}/portfolios/invalid_id/consumers/invalid_id") do
465
- json_response 400, 'single_consumer_subscribe_error.json'
466
- end
467
- delete("/#{version}/portfolios/valid_id/consumers/valid_id") { status 204 }
468
- delete("/#{version}/portfolios/invalid_id/consumers/invalid_id") do
469
- json_response 404, 'resource_not_found.json'
470
- end
478
+ # portfolios consumers
479
+ get("/#{version}/portfolios/valid_id/consumers") do
480
+ json_response 200, 'portfolios_consumers.json'
481
+ end
482
+ get("/#{version}/portfolios/invalid_id/consumers") do
483
+ json_response 404, 'resource_not_found.json'
484
+ end
485
+ post("/#{version}/portfolios/valid_id/consumers") { status 204 }
486
+ post("/#{version}/portfolios/invalid_id/consumers") do
487
+ json_response 400, 'multiple_consumer_subscribe_error.json'
488
+ end
489
+ post("/#{version}/portfolios/valid_id/consumers/valid_id") { status 204 }
490
+ post("/#{version}/portfolios/invalid_id/consumers/invalid_id") do
491
+ json_response 400, 'single_consumer_subscribe_error.json'
492
+ end
493
+ delete("/#{version}/portfolios/valid_id/consumers/valid_id") { status 204 }
494
+ delete("/#{version}/portfolios/invalid_id/consumers/invalid_id") do
495
+ json_response 404, 'resource_not_found.json'
496
+ end
471
497
 
472
- # portfolios available consumers
473
- get("/#{version}/portfolios/:id/consumers/available") do
474
- json_response 200, 'portfolios_available_consumers.json'
475
- end
498
+ # portfolios available consumers
499
+ get("/#{version}/portfolios/:id/consumers/available") do
500
+ json_response 200, 'portfolios_available_consumers.json'
501
+ end
476
502
 
477
- # consumers portfolios
478
- get("/#{version}/consumers/valid_id/portfolios") do
479
- json_response 200, 'portfolios.json'
480
- end
481
- get("/#{version}/consumers/invalid_id/portfolios") do
482
- json_response 404, 'resource_not_found.json'
483
- end
503
+ # consumers portfolios
504
+ get("/#{version}/consumers/valid_id/portfolios") do
505
+ json_response 200, 'portfolios.json'
506
+ end
507
+ get("/#{version}/consumers/invalid_id/portfolios") do
508
+ json_response 404, 'resource_not_found.json'
509
+ end
484
510
 
485
- # portfolio reports
486
- get("/#{version}/portfolio/reports") do
487
- json_response 200, 'portfolio_reports.json'
488
- end
511
+ # portfolio reports
512
+ get("/#{version}/portfolio/reports") do
513
+ json_response 200, 'portfolio_reports.json'
514
+ end
489
515
 
490
- # relevance
491
- get("/#{version}/relevance/ruleset/names") do
492
- json_response 200, 'relevance_ruleset_names.json'
493
- end
516
+ # relevance
517
+ get("/#{version}/relevance/ruleset/names") do
518
+ json_response 200, 'relevance_ruleset_names.json'
519
+ end
494
520
 
495
- # errors
496
- get("/#{version}/client_error") { json_response 400, 'error.json' }
497
- get("/#{version}/server_error") { status 500 }
498
- get("/#{version}/proxy_error") { status 407 }
521
+ # errors
522
+ get("/#{version}/client_error") { json_response 400, 'error.json' }
523
+ get("/#{version}/server_error") { status 500 }
524
+ get("/#{version}/proxy_error") { status 407 }
499
525
 
500
- # timeout
501
- get("/#{version}/orders/timeout") { status 419 }
526
+ # timeout
527
+ get("/#{version}/orders/timeout") { status 419 }
502
528
 
503
- private
529
+ private
504
530
 
505
- def json_response(response_code, file_name)
506
- http_response :json, response_code, file_name
507
- end
531
+ def json_response(response_code, file_name)
532
+ http_response :json, response_code, file_name
533
+ end
508
534
 
509
- def png_response(file_name)
510
- http_response :png, 200, file_name
511
- end
535
+ def png_response(file_name)
536
+ http_response :png, 200, file_name
537
+ end
512
538
 
513
- def pdf_response(file_name)
514
- http_response 'application/pdf', 200, file_name
515
- end
539
+ def pdf_response(file_name)
540
+ http_response 'application/pdf', 200, file_name
541
+ end
516
542
 
517
- def http_response(content_type, response_code, file_name)
518
- content_type content_type
519
- status response_code
520
- File.open("#{File.dirname(__FILE__)}/fixtures/#{file_name}").read
543
+ def http_response(content_type, response_code, file_name)
544
+ content_type content_type
545
+ status response_code
546
+ File.open("#{File.dirname(__FILE__)}/fixtures/#{file_name}").read
547
+ end
521
548
  end
549
+ # rubocop:enable Metrics/ClassLength
522
550
  end