finapps 5.0.43 → 5.0.44

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: 25bea095f4796915e3b73d50300279a31fd052ca797da34c91a41078f9eecc2b
4
- data.tar.gz: 2f4123341bbc2703a26d8ad361428fb050a06c797390d7b57f2b67f07bef90de
3
+ metadata.gz: 94ef2ce4cd675c162a8b7d7c932fd85235fd4f30f5553fd2f829f89768d35451
4
+ data.tar.gz: a3bc58dc9f244eb8300a2e49fd9e24a429bcaf3211fb4468686e3d8db14c5328
5
5
  SHA512:
6
- metadata.gz: 03c8eccc181f51654a07bad7769ce759707d6f6a54a21a806ce0b924ef7bce7ee17c1f27751a86f9659d83e6e7005988dd48bad3d51127bc1957f6764a392116
7
- data.tar.gz: 01205c7a1e01a4267d5dd9ad4e10789872a2e6bf47e29c354ed2c9939c806e01bdfa00b1a1c1c36012397cbc6b235760c99486f8b3f71f17c912ad6e458cf059
6
+ metadata.gz: 1a250e599314beab25f3bbd0d2d2781f9af75ff59ef28bc130a748456ae3bbef9516b70c51ee91c465bbc96b55d69f74f190c9a5b09ab3d703f6efb23d43a378
7
+ data.tar.gz: 759cbe18313cbaa105d9ea7439e962215a3c5be7a773c2662ee63dddb315adafcd8a52b3508eb05982dedf986642a9374972aad52638e875479cfc269b9171ba
@@ -18,6 +18,14 @@ module FinApps
18
18
  not_blank(doc_id, :doc_id)
19
19
  super(nil, "documents/orders/#{order_id}/#{doc_id}")
20
20
  end
21
+
22
+ def destroy_by_consumer(consumer_id, document_id)
23
+ not_blank(consumer_id, :consumer_id)
24
+ not_blank(document_id, :document_id)
25
+
26
+ path = "consumers/#{consumer_id}/documents/#{document_id}"
27
+ send_request path, :delete
28
+ end
21
29
  end
22
30
  end
23
31
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '5.0.43'
4
+ VERSION = '5.0.44'
5
5
  end
@@ -101,4 +101,57 @@ RSpec.describe FinApps::REST::DocumentsUploads do
101
101
  end
102
102
  end
103
103
  end
104
+
105
+ describe '#destroy_by_consumer' do
106
+ subject(:destroy_by_consumer) do
107
+ described_class.new(client).destroy_by_consumer(consumer_id, document_id)
108
+ end
109
+
110
+ let(:results) { destroy_by_consumer[0] }
111
+ let(:error_messages) { destroy_by_consumer[1] }
112
+
113
+ context 'with valid params' do
114
+ let(:consumer_id) { :valid_consumer_id }
115
+ let(:document_id) { :valid_document_id }
116
+
117
+ it_behaves_like 'an API request'
118
+ it_behaves_like 'a successful request'
119
+ it('results is nil') { expect(results).to be_nil }
120
+ end
121
+
122
+ context 'with invalid consumer_id' do
123
+ let(:consumer_id) { :invalid_consumer_id }
124
+ let(:document_id) { :valid_document_id }
125
+
126
+ it_behaves_like 'an API request'
127
+ it('results is nil') { expect(results).to be_nil }
128
+
129
+ it('error messages array is populated') do
130
+ expect(error_messages.first.downcase).to eq('resource not found')
131
+ end
132
+ end
133
+
134
+ context 'with invalid document id' do
135
+ let(:consumer_id) { :valid_consumer_id }
136
+ let(:document_id) { :invalid_document_id }
137
+
138
+ it_behaves_like 'an API request'
139
+ it('results is nil') { expect(results).to be_nil }
140
+
141
+ it('error messages array is populated') do
142
+ expect(error_messages.first.downcase).to eq('resource not found')
143
+ end
144
+ end
145
+
146
+ context 'with missing id' do
147
+ let(:consumer_id) { nil }
148
+ let(:document_id) { nil }
149
+
150
+ it do
151
+ expect { destroy_by_consumer }.to raise_error(
152
+ FinAppsCore::MissingArgumentsError
153
+ )
154
+ end
155
+ end
156
+ end
104
157
  end
@@ -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,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_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
255
+ # documents_uploads
256
+ include DocumentsUploadsRoutes
265
257
 
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
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
271
263
 
272
- # signed documents downloads
273
- get("/#{version}/consumers/:consumer_id/documents/:signature_request_id") do
274
- pdf_response 'signed_document.pdf'
275
- end
264
+ # signed documents downloads
265
+ get("/#{version}/consumers/:consumer_id/documents/:signature_request_id") do
266
+ pdf_response 'signed_document.pdf'
267
+ end
276
268
 
277
- # esign_templates
278
- get("/#{version}/esign_templates") { json_response 200, 'esign_templates.json' }
269
+ # esign_templates
270
+ get("/#{version}/esign_templates") { json_response 200, 'esign_templates.json' }
279
271
 
280
- # document_upload_types
281
- get("/#{version}/documents/upload_types") { json_response 200, 'upload_types.json' }
272
+ # document_upload_types
273
+ get("/#{version}/documents/upload_types") { json_response 200, 'upload_types.json' }
282
274
 
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'
275
+ # consumers
276
+ get("/#{version}/consumers") do
277
+ json_response 200, 'users.json'
300
278
  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 }
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 }
317
309
 
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'
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
346
321
  json_response 200, 'operator.json'
347
- else
348
- json_response 400, 'invalid_request_body.json'
349
322
  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'
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
358
351
  end
359
- end
360
352
 
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')
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
369
362
  end
370
- end
371
- post("/#{version}/operators/login") { json_response 200, 'operator.json' }
363
+ post("/#{version}/operators/login") { json_response 200, 'operator.json' }
372
364
 
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')
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'
387
383
  end
388
- end
389
- put("/#{version}/tenant/invalid_user_id/password") do
390
- json_response 404, 'resource_not_found.json'
391
- end
392
384
 
393
- # products
394
- get("/#{version}/products") { json_response 200, 'products.json' }
385
+ # products
386
+ get("/#{version}/products") { json_response 200, 'products.json' }
395
387
 
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')
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'
409
410
  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
411
 
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
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
430
422
 
431
- # alert occurrences
432
- get("/#{version}/portfolio/alerts/occurrences") do
433
- json_response 200, 'alert_occurrences.json'
434
- end
423
+ # alert occurrences
424
+ get("/#{version}/portfolio/alerts/occurrences") do
425
+ json_response 200, 'alert_occurrences.json'
426
+ end
435
427
 
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
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
451
443
 
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
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
471
463
 
472
- # portfolios available consumers
473
- get("/#{version}/portfolios/:id/consumers/available") do
474
- json_response 200, 'portfolios_available_consumers.json'
475
- end
464
+ # portfolios available consumers
465
+ get("/#{version}/portfolios/:id/consumers/available") do
466
+ json_response 200, 'portfolios_available_consumers.json'
467
+ end
476
468
 
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
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
484
476
 
485
- # portfolio reports
486
- get("/#{version}/portfolio/reports") do
487
- json_response 200, 'portfolio_reports.json'
488
- end
477
+ # portfolio reports
478
+ get("/#{version}/portfolio/reports") do
479
+ json_response 200, 'portfolio_reports.json'
480
+ end
489
481
 
490
- # relevance
491
- get("/#{version}/relevance/ruleset/names") do
492
- json_response 200, 'relevance_ruleset_names.json'
493
- end
482
+ # relevance
483
+ get("/#{version}/relevance/ruleset/names") do
484
+ json_response 200, 'relevance_ruleset_names.json'
485
+ end
494
486
 
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 }
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 }
499
491
 
500
- # timeout
501
- get("/#{version}/orders/timeout") { status 419 }
492
+ # timeout
493
+ get("/#{version}/orders/timeout") { status 419 }
502
494
 
503
- private
495
+ private
504
496
 
505
- def json_response(response_code, file_name)
506
- http_response :json, response_code, file_name
507
- end
497
+ def json_response(response_code, file_name)
498
+ http_response :json, response_code, file_name
499
+ end
508
500
 
509
- def png_response(file_name)
510
- http_response :png, 200, file_name
511
- end
501
+ def png_response(file_name)
502
+ http_response :png, 200, file_name
503
+ end
512
504
 
513
- def pdf_response(file_name)
514
- http_response 'application/pdf', 200, file_name
515
- end
505
+ def pdf_response(file_name)
506
+ http_response 'application/pdf', 200, file_name
507
+ end
516
508
 
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
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
521
514
  end
522
515
  end