finapps 5.0.35 → 5.0.44

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