finapps 5.0.28 → 5.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/RELEASES.md +11 -0
- data/lib/finapps.rb +2 -0
- data/lib/finapps/rest/client.rb +10 -8
- data/lib/finapps/rest/documents_orders.rb +87 -0
- data/lib/finapps/rest/esign_templates.rb +11 -0
- data/lib/finapps/version.rb +1 -1
- data/spec/rest/documents_orders_spec.rb +271 -0
- data/spec/rest/esign_templates_spec.rb +20 -0
- data/spec/support/fake_api.rb +46 -0
- data/spec/support/fixtures/documents_order.json +75 -0
- data/spec/support/fixtures/documents_orders.json +32 -0
- data/spec/support/fixtures/esign_templates.json +6 -0
- data/spec/support/fixtures/invalid_order_id.json +5 -0
- data/spec/support/fixtures/invalid_signature_id.json +5 -0
- data/spec/support/fixtures/sign_url.json +4 -0
- metadata +62 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f24fb86c099693e3d0f4ffb075bbaadd4886e9c165680b192a86bc79b6e6b82
|
4
|
+
data.tar.gz: 65255650d2ac2cf388f83b9be35b9b9d838ae4c2d85d850e2b25352c73e95227
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 254d4ceb173bb18759b6aed0c6b1fd3144656e516376b7c559bdc1e9836d0782d227e35508ac032b8fb3d03d268b171e8f357ceb6c191fc1d57a9e68bca9829d
|
7
|
+
data.tar.gz: 15a9340a7550212b940e16fb22890cd8ff22a99b1bc05bac3cd46435acd1f2aefa93d4118418c47c3abd2e720a27091c39b3f6b9b1376e002f49ade74f546df9
|
data/RELEASES.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## [5.0.29] - 2020-05-08
|
2
|
+
|
3
|
+
### Added
|
4
|
+
* Document-orders endpoints ([#219][i219])
|
5
|
+
|
6
|
+
[i219]: https://github.com/finapps/ruby-client/issues/219
|
7
|
+
|
8
|
+
[5.0.29]: https://github.com/finapps/ruby-client/compare/5.0.28...5.0.29
|
9
|
+
|
1
10
|
## [5.0.28] - 2020-02-19
|
2
11
|
|
3
12
|
### Added
|
@@ -5,6 +14,8 @@
|
|
5
14
|
|
6
15
|
[i217]: https://github.com/finapps/ruby-client/issues/217
|
7
16
|
|
17
|
+
[5.0.28]: https://github.com/finapps/ruby-client/compare/5.0.27...5.0.28
|
18
|
+
|
8
19
|
## [5.0.27] - 2020-02-11
|
9
20
|
|
10
21
|
### Changed
|
data/lib/finapps.rb
CHANGED
@@ -29,6 +29,8 @@ require 'finapps/rest/portfolios_alerts'
|
|
29
29
|
require 'finapps/rest/portfolios_consumers'
|
30
30
|
require 'finapps/rest/consumers_portfolios'
|
31
31
|
require 'finapps/rest/portfolio_reports'
|
32
|
+
require 'finapps/rest/documents_orders'
|
33
|
+
require 'finapps/rest/esign_templates'
|
32
34
|
|
33
35
|
require 'finapps/rest/plaid/plaid_resources'
|
34
36
|
require 'finapps/rest/plaid/plaid_webhooks'
|
data/lib/finapps/rest/client.rb
CHANGED
@@ -9,7 +9,10 @@ module FinApps
|
|
9
9
|
RESOURCES = %i[
|
10
10
|
alert_definitions
|
11
11
|
alert_occurrences
|
12
|
+
consumers
|
12
13
|
consumers_portfolios
|
14
|
+
documents_orders
|
15
|
+
esign_templates
|
13
16
|
orders
|
14
17
|
order_assignments
|
15
18
|
order_notifications
|
@@ -20,26 +23,25 @@ module FinApps
|
|
20
23
|
operators
|
21
24
|
operators_password_resets
|
22
25
|
password_resets
|
23
|
-
|
26
|
+
plaid_webhooks
|
27
|
+
plaid_consumer_institutions
|
28
|
+
plaid_accounts
|
29
|
+
plaid_account_permissions
|
30
|
+
plaid_institution_logos
|
24
31
|
portfolios
|
25
32
|
portfolios_alerts
|
26
33
|
portfolios_available_consumers
|
27
34
|
portfolios_consumers
|
28
35
|
portfolio_reports
|
36
|
+
products
|
29
37
|
sessions
|
30
|
-
consumers
|
31
38
|
tenant_settings
|
32
39
|
tenant_app_settings
|
33
|
-
version
|
34
|
-
plaid_webhooks
|
35
|
-
plaid_consumer_institutions
|
36
|
-
plaid_accounts
|
37
|
-
plaid_account_permissions
|
38
|
-
plaid_institution_logos
|
39
40
|
verix_metadata
|
40
41
|
verix_records
|
41
42
|
verix_pdf_documents
|
42
43
|
verix_documents
|
44
|
+
version
|
43
45
|
].freeze
|
44
46
|
|
45
47
|
# @param [String] tenant_token
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative '../utils/query_builder'
|
4
|
+
|
5
|
+
module FinApps
|
6
|
+
module REST
|
7
|
+
class DocumentsOrders < FinAppsCore::REST::Resources
|
8
|
+
include FinApps::Utils::QueryBuilder
|
9
|
+
|
10
|
+
def list(params = nil)
|
11
|
+
path = 'documents/orders'
|
12
|
+
return super(path) if params.nil?
|
13
|
+
raise FinAppsCore::InvalidArgumentsError, 'Invalid argument: params' unless params.is_a? Hash
|
14
|
+
|
15
|
+
super build_query_path(path, params)
|
16
|
+
end
|
17
|
+
|
18
|
+
def show(id)
|
19
|
+
not_blank(id, :order_id)
|
20
|
+
super(id, "documents/orders/#{id}")
|
21
|
+
end
|
22
|
+
|
23
|
+
def create(params)
|
24
|
+
not_blank(params, :params)
|
25
|
+
super(params, 'documents/orders')
|
26
|
+
end
|
27
|
+
|
28
|
+
def update(id, params = nil)
|
29
|
+
not_blank(id, :order_id)
|
30
|
+
not_blank(params, :params)
|
31
|
+
super(params, "documents/orders/#{id}")
|
32
|
+
end
|
33
|
+
|
34
|
+
def destroy(id)
|
35
|
+
not_blank(id, :order_id)
|
36
|
+
super(id, "documents/orders/#{id}")
|
37
|
+
end
|
38
|
+
|
39
|
+
def show_signing_url(order_id, signature_id)
|
40
|
+
not_blank(order_id, :order_id)
|
41
|
+
not_blank(signature_id, :signature_id)
|
42
|
+
path = "documents/orders/#{order_id}/sign_url/#{signature_id}"
|
43
|
+
send_request path, :get
|
44
|
+
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def build_filter(params)
|
49
|
+
search_query(params[:searchTerm]).merge(consumer_query(params[:consumer])).merge(tag_query(params[:tag]))
|
50
|
+
end
|
51
|
+
|
52
|
+
def search_query(term)
|
53
|
+
if term
|
54
|
+
{
|
55
|
+
"$or": [
|
56
|
+
{ "order_id": { "$regex": "^#{term}", "$options": 'i' } },
|
57
|
+
{ "applicant.last_name": term },
|
58
|
+
{
|
59
|
+
"reference_no": {
|
60
|
+
"$regex": "^#{term}", "$options": 'i'
|
61
|
+
}
|
62
|
+
}
|
63
|
+
]
|
64
|
+
}
|
65
|
+
else
|
66
|
+
{}
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
def tag_query(tag)
|
71
|
+
if tag
|
72
|
+
{ "tag": tag.empty? ? nil : tag }
|
73
|
+
else
|
74
|
+
{}
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def consumer_query(consumer)
|
79
|
+
if consumer
|
80
|
+
{ "consumer_id": consumer.empty? ? nil : consumer }
|
81
|
+
else
|
82
|
+
{}
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
data/lib/finapps/version.rb
CHANGED
@@ -0,0 +1,271 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helpers/client'
|
4
|
+
require 'rest/api_request'
|
5
|
+
|
6
|
+
RSpec.describe FinApps::REST::DocumentsOrders do
|
7
|
+
include SpecHelpers::Client
|
8
|
+
|
9
|
+
RSpec.shared_examples 'a request that raises an error' do |_parameter|
|
10
|
+
it do
|
11
|
+
expect { subject }.to raise_error(
|
12
|
+
FinAppsCore::MissingArgumentsError
|
13
|
+
)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe '#list' do
|
18
|
+
subject(:list) { FinApps::REST::DocumentsOrders.new(client).list(params) }
|
19
|
+
let(:results) { list[0] }
|
20
|
+
let(:error_messages) { list[1] }
|
21
|
+
|
22
|
+
context 'with valid params' do
|
23
|
+
let(:params) do
|
24
|
+
{
|
25
|
+
page: 2,
|
26
|
+
sort: 'tag',
|
27
|
+
requested: 25,
|
28
|
+
searchTerm: 'term',
|
29
|
+
consumer: 'valid_consumer_id'
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'without searchTerm' do
|
34
|
+
let(:params) { { "searchTerm": nil, "page": 2 } }
|
35
|
+
it_behaves_like 'an API request'
|
36
|
+
it_behaves_like 'a successful request'
|
37
|
+
it 'performs a get and returns the response' do
|
38
|
+
expect(results).to have_key(:records)
|
39
|
+
end
|
40
|
+
it 'builds query and sends proper request' do
|
41
|
+
list
|
42
|
+
url = "#{versioned_api_path}/documents/orders?page=2"
|
43
|
+
expect(WebMock).to have_requested(:get, url)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
context 'with search term' do
|
48
|
+
it_behaves_like 'an API request'
|
49
|
+
it_behaves_like 'a successful request'
|
50
|
+
it 'performs a get and returns the response' do
|
51
|
+
expect(results).to have_key(:records)
|
52
|
+
end
|
53
|
+
it 'builds query and sends proper request' do
|
54
|
+
list
|
55
|
+
url =
|
56
|
+
"#{versioned_api_path}/documents/orders?filter=%7B%22$or%22:%5B%7B%22order_id%22:%7B%22$regex%22:"\
|
57
|
+
'%22%5Eterm%22,%22$options%22:%22i%22%7D%7D,%7B%22applicant.last_name%22:%22term%22%7D,'\
|
58
|
+
'%7B%22reference_no%22:%7B%22$regex%22:%22%5Eterm%22,%22$options%22:%22i%22%7D%7D%5D,'\
|
59
|
+
'%22consumer_id%22:%22valid_consumer_id%22%7D&page=2&requested=25&sort=tag'
|
60
|
+
expect(WebMock).to have_requested(:get, url)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context 'with invalid params' do
|
66
|
+
let(:params) { ['invalid array'] }
|
67
|
+
it { expect { list }.to raise_error(FinAppsCore::InvalidArgumentsError) }
|
68
|
+
end
|
69
|
+
|
70
|
+
context 'with missing params' do
|
71
|
+
let(:params) { nil }
|
72
|
+
it_behaves_like 'an API request'
|
73
|
+
it_behaves_like 'a successful request'
|
74
|
+
it('performs a get and returns the response') do
|
75
|
+
expect(results).to have_key(:records)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
describe '#show' do
|
81
|
+
subject(:show) { FinApps::REST::DocumentsOrders.new(client).show(id) }
|
82
|
+
let(:results) { show[0] }
|
83
|
+
let(:error_messages) { show[1] }
|
84
|
+
|
85
|
+
context 'with valid id' do
|
86
|
+
let(:id) { :valid_order_id }
|
87
|
+
it_behaves_like 'an API request'
|
88
|
+
it_behaves_like 'a successful request'
|
89
|
+
it('results is a Hash') { expect(results).to be_a(Hash) }
|
90
|
+
it('performs a get and returns the response') do
|
91
|
+
expect(results).to have_key(:order_id)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context 'with invalid id' do
|
96
|
+
let(:id) { :invalid_order_id }
|
97
|
+
it { expect(results).to be_nil }
|
98
|
+
it { expect(error_messages).to_not be_empty }
|
99
|
+
end
|
100
|
+
|
101
|
+
context 'when missing id' do
|
102
|
+
let(:id) { nil }
|
103
|
+
it_behaves_like 'a request that raises an error'
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
describe '#create' do
|
108
|
+
subject(:create) { FinApps::REST::DocumentsOrders.new(client).create(params) }
|
109
|
+
let(:results) { create[0] }
|
110
|
+
let(:error_messages) { create[1] }
|
111
|
+
|
112
|
+
context 'with valid params' do
|
113
|
+
let(:params) do
|
114
|
+
{
|
115
|
+
"applicant": {
|
116
|
+
"email": 'validemail@financialapps.com',
|
117
|
+
"first_name": 'Emily',
|
118
|
+
"last_name": 'Macs',
|
119
|
+
"role": 'patient'
|
120
|
+
},
|
121
|
+
"esign_documents": [
|
122
|
+
'temp-id'
|
123
|
+
],
|
124
|
+
"reference_no": 'REFNO',
|
125
|
+
"tag": 'new'
|
126
|
+
}
|
127
|
+
end
|
128
|
+
it_behaves_like 'an API request'
|
129
|
+
it_behaves_like 'a successful request'
|
130
|
+
it('results is a Hash') { expect(results).to be_a(Hash) }
|
131
|
+
it('performs a post and returns the response') do
|
132
|
+
expect(results).to have_key(:order_id)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
context 'with invalid params' do
|
137
|
+
let(:params) do
|
138
|
+
{
|
139
|
+
"applicant": {
|
140
|
+
"email": 'validemail@financialapps.com',
|
141
|
+
"first_name": 'Emily',
|
142
|
+
"last_name": 'Macs',
|
143
|
+
"role": 'patient'
|
144
|
+
},
|
145
|
+
"reference_no": 'REFNO'
|
146
|
+
}
|
147
|
+
end
|
148
|
+
it { expect { create }.not_to raise_error }
|
149
|
+
it('results is nil') { expect(results).to be_nil }
|
150
|
+
it('error messages array is populated') do
|
151
|
+
expect(error_messages.first.downcase).to eq('invalid request body')
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
context 'with missing params' do
|
156
|
+
let(:params) { nil }
|
157
|
+
it_behaves_like 'a request that raises an error'
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
describe '#update' do
|
162
|
+
subject(:update) { FinApps::REST::DocumentsOrders.new(client).update(id, params) }
|
163
|
+
let(:params) { {} }
|
164
|
+
let(:results) { update[0] }
|
165
|
+
let(:error_messages) { update[1] }
|
166
|
+
|
167
|
+
context 'with valid id' do
|
168
|
+
let(:id) { :valid_order_id }
|
169
|
+
|
170
|
+
context 'with valid params' do
|
171
|
+
let(:params) { { "tag": 'pending' } }
|
172
|
+
it_behaves_like 'an API request'
|
173
|
+
it_behaves_like 'a successful request'
|
174
|
+
it('results is nil') { expect(results).to be_nil }
|
175
|
+
end
|
176
|
+
|
177
|
+
context 'with invalid params' do
|
178
|
+
let(:params) { { "tag": 'invalid' } }
|
179
|
+
it_behaves_like 'an API request'
|
180
|
+
it('results is nil') { expect(results).to be_nil }
|
181
|
+
it('error messages array is populated') do
|
182
|
+
expect(error_messages.first.downcase).to eq('invalid request body')
|
183
|
+
end
|
184
|
+
end
|
185
|
+
end
|
186
|
+
|
187
|
+
context 'with invalid id' do
|
188
|
+
let(:id) { :invalid_order_id }
|
189
|
+
let(:params) { { applicant: { first_name: 'Quasar' } } }
|
190
|
+
it_behaves_like 'an API request'
|
191
|
+
it('results is nil') { expect(results).to be_nil }
|
192
|
+
it('error messages array is populated') do
|
193
|
+
expect(error_messages.first.downcase).to eq(
|
194
|
+
'order id is invalid'
|
195
|
+
)
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
context 'with missing id' do
|
200
|
+
let(:id) { nil }
|
201
|
+
it_behaves_like 'a request that raises an error'
|
202
|
+
end
|
203
|
+
end
|
204
|
+
|
205
|
+
describe '#destroy' do
|
206
|
+
subject(:destroy) { FinApps::REST::DocumentsOrders.new(client).destroy(id) }
|
207
|
+
let(:results) { destroy[0] }
|
208
|
+
let(:error_messages) { destroy[1] }
|
209
|
+
|
210
|
+
context 'with valid id' do
|
211
|
+
let(:id) { :valid_order_id }
|
212
|
+
it_behaves_like 'an API request'
|
213
|
+
it_behaves_like 'a successful request'
|
214
|
+
it('results is nil') { expect(results).to be_nil }
|
215
|
+
end
|
216
|
+
|
217
|
+
context 'with invalid id' do
|
218
|
+
let(:id) { :invalid_order_id }
|
219
|
+
it_behaves_like 'an API request'
|
220
|
+
it('results is nil') { expect(results).to be_nil }
|
221
|
+
it('error messages array is populated') do
|
222
|
+
expect(error_messages.first.downcase).to eq('resource not found')
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
226
|
+
context 'with missing id' do
|
227
|
+
let(:id) { nil }
|
228
|
+
it_behaves_like 'a request that raises an error'
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
describe '#show_signing_url' do
|
233
|
+
subject(:sign_url) { FinApps::REST::DocumentsOrders.new(client).show_signing_url(order_id, signature_id) }
|
234
|
+
let(:results) { sign_url[0] }
|
235
|
+
let(:error_messages) { sign_url[1] }
|
236
|
+
let(:order_id) { :valid_order_id }
|
237
|
+
let(:signature_id) { :valid_signature_id }
|
238
|
+
|
239
|
+
context 'with valid order id' do
|
240
|
+
context 'with valid signature id' do
|
241
|
+
it_behaves_like 'an API request'
|
242
|
+
it_behaves_like 'a successful request'
|
243
|
+
it('performs a get and returns the response') do
|
244
|
+
expect(results).to have_key(:sign_url)
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
context 'with invalid signature id' do
|
249
|
+
let(:signature_id) { :invalid_signature_id }
|
250
|
+
it { expect(results).to be_nil }
|
251
|
+
it { expect(error_messages).to_not be_empty }
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
context 'with invalid order id' do
|
256
|
+
let(:order_id) { :invalid_order_id }
|
257
|
+
it { expect(results).to be_nil }
|
258
|
+
it { expect(error_messages).to_not be_empty }
|
259
|
+
end
|
260
|
+
|
261
|
+
context 'with missing order id' do
|
262
|
+
let(:order_id) { nil }
|
263
|
+
it_behaves_like 'a request that raises an error'
|
264
|
+
end
|
265
|
+
|
266
|
+
context 'with missing signature id' do
|
267
|
+
let(:signature_id) { nil }
|
268
|
+
it_behaves_like 'a request that raises an error'
|
269
|
+
end
|
270
|
+
end
|
271
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helpers/client'
|
4
|
+
require 'rest/api_request'
|
5
|
+
|
6
|
+
RSpec.describe FinApps::REST::EsignTemplates do
|
7
|
+
include SpecHelpers::Client
|
8
|
+
subject(:templates) { FinApps::REST::EsignTemplates.new(client).list }
|
9
|
+
let(:results) { templates[0] }
|
10
|
+
|
11
|
+
describe '#list' do
|
12
|
+
context 'when called' do
|
13
|
+
it_behaves_like 'an API request'
|
14
|
+
it_behaves_like 'a successful request'
|
15
|
+
it('performs a get and returns the response') do
|
16
|
+
expect(results[0]).to have_key(:template_id)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
data/spec/support/fake_api.rb
CHANGED
@@ -202,6 +202,52 @@ class FakeApi < Sinatra::Base
|
|
202
202
|
end
|
203
203
|
end
|
204
204
|
|
205
|
+
# documents_orders
|
206
|
+
get("/#{version}/documents/orders") { json_response 200, 'documents_orders.json' }
|
207
|
+
get("/#{version}/documents/orders/valid_order_id") do
|
208
|
+
json_response 200, 'documents_order.json'
|
209
|
+
end
|
210
|
+
get("/#{version}/documents/orders/invalid_order_id") do
|
211
|
+
json_response 404, 'resource_not_found.json'
|
212
|
+
end
|
213
|
+
post("/#{version}/documents/orders") do
|
214
|
+
request.body.rewind
|
215
|
+
request_payload = JSON.parse request.body.read
|
216
|
+
if %w[applicant esign_documents tag].all? { |s| request_payload.key? s }
|
217
|
+
json_response 200, 'documents_order.json'
|
218
|
+
else
|
219
|
+
json_response 400, 'invalid_request_body.json'
|
220
|
+
end
|
221
|
+
end
|
222
|
+
put("/#{version}/documents/orders/valid_order_id") do
|
223
|
+
request.body.rewind
|
224
|
+
request_payload = JSON.parse request.body.read
|
225
|
+
if request_payload['tag'] == 'invalid'
|
226
|
+
json_response 400, 'invalid_request_body.json'
|
227
|
+
else
|
228
|
+
status 204
|
229
|
+
end
|
230
|
+
end
|
231
|
+
put("/#{version}/documents/orders/invalid_order_id") do
|
232
|
+
json_response 400, 'invalid_order_id.json'
|
233
|
+
end
|
234
|
+
delete("/#{version}/documents/orders/valid_order_id") { status 204 }
|
235
|
+
delete("/#{version}/documents/orders/invalid_order_id") do
|
236
|
+
json_response 404, 'resource_not_found.json'
|
237
|
+
end
|
238
|
+
get("/#{version}/documents/orders/valid_order_id/sign_url/valid_signature_id") do
|
239
|
+
json_response 200, 'sign_url.json'
|
240
|
+
end
|
241
|
+
get("/#{version}/documents/orders/invalid_order_id/sign_url/valid_signature_id") do
|
242
|
+
json_response 400, 'invalid_order_id.json'
|
243
|
+
end
|
244
|
+
get("/#{version}/documents/orders/valid_order_id/sign_url/invalid_signature_id") do
|
245
|
+
json_response 404, 'invalid_signature_id.json'
|
246
|
+
end
|
247
|
+
|
248
|
+
# esign_templates
|
249
|
+
get("/#{version}/esign_templates") { json_response 200, 'esign_templates.json' }
|
250
|
+
|
205
251
|
# consumers
|
206
252
|
get("/#{version}/consumers") do
|
207
253
|
json_response 200, 'users.json'
|
@@ -0,0 +1,75 @@
|
|
1
|
+
{
|
2
|
+
"order_id": "572c0ae0-bdb8-4e68-a5fd-8ac15870f2fe",
|
3
|
+
"consumer_id": "fc136a18-af0c-4d36-4743-1babb89cbbd0",
|
4
|
+
"applicant": {
|
5
|
+
"role": "patient",
|
6
|
+
"email": "validemail@financialapps.com",
|
7
|
+
"first_name": "Documents",
|
8
|
+
"last_name": "Testing"
|
9
|
+
},
|
10
|
+
"reference_no": "REFNO87687687",
|
11
|
+
"esign_documents": [
|
12
|
+
{
|
13
|
+
"document_id": "",
|
14
|
+
"template_id": "f6e9c513486c6a9468209a91ec14c25258eed515",
|
15
|
+
"name": "BH Form"
|
16
|
+
}
|
17
|
+
],
|
18
|
+
"completed_documents": [],
|
19
|
+
"tag": "denied",
|
20
|
+
"status": 1,
|
21
|
+
"signature_requests": [
|
22
|
+
{
|
23
|
+
"signature_request_id": "b32f0073f7817f353199dcaab683d129a939e7be",
|
24
|
+
"test_mode": true,
|
25
|
+
"title": "Document for review",
|
26
|
+
"subject": "Document for review",
|
27
|
+
"message": "",
|
28
|
+
"created_at": 1588689298,
|
29
|
+
"is_complete": false,
|
30
|
+
"is_declined": false,
|
31
|
+
"has_error": false,
|
32
|
+
"signing_url": null,
|
33
|
+
"signing_redirect_url": null,
|
34
|
+
"details_url": "",
|
35
|
+
"files_url": "",
|
36
|
+
"cc_email_addresses": [],
|
37
|
+
"requester_email_address": "validemail@financialapps.com",
|
38
|
+
"custom_fields": [
|
39
|
+
{
|
40
|
+
"name": "PatientName",
|
41
|
+
"type": "text",
|
42
|
+
"value": "",
|
43
|
+
"required": true,
|
44
|
+
"editor": ""
|
45
|
+
}
|
46
|
+
],
|
47
|
+
"response_data": [],
|
48
|
+
"signatures": [
|
49
|
+
{
|
50
|
+
"signature_id": "00b2bbdc50d4d6a6486965a921cb81f8",
|
51
|
+
"signer_email_address": "validemail@financialapps.com",
|
52
|
+
"signer_name": "Documents Testing",
|
53
|
+
"signer_role": "patient",
|
54
|
+
"order": null,
|
55
|
+
"status_code": "awaiting_signature",
|
56
|
+
"signed_at": null,
|
57
|
+
"last_viewed_at": null,
|
58
|
+
"last_reminded_at": null,
|
59
|
+
"has_pin": false,
|
60
|
+
"reassigned_by": null,
|
61
|
+
"reassignment_reason": null,
|
62
|
+
"error": null
|
63
|
+
}
|
64
|
+
],
|
65
|
+
"metadata": {
|
66
|
+
"consumer_id": "fc136a18-af0c-4d36-4743-1babb89cbbd0",
|
67
|
+
"order_id": "572c0ae0-bdb8-4e68-a5fd-8ac15870f2fe",
|
68
|
+
"tenant_id": "4dd607b1-565f-4da4-722c-2e84c5c87f43"
|
69
|
+
}
|
70
|
+
}
|
71
|
+
],
|
72
|
+
"reset_pwd": true,
|
73
|
+
"date_created": "2020-05-05T14:34:58.435Z",
|
74
|
+
"date_modified": "2020-05-07T14:38:08.271Z"
|
75
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
{
|
2
|
+
"total_records": 1,
|
3
|
+
"page": 1,
|
4
|
+
"total_pages": 1,
|
5
|
+
"records": [
|
6
|
+
{
|
7
|
+
"order_id": "2f02be2c-0cbc-4980-bd8f-b2dee986c885",
|
8
|
+
"consumer_id": "6dadcf93-5305-4c4b-4136-465f9cd6d5e6",
|
9
|
+
"applicant": {
|
10
|
+
"role": "patient",
|
11
|
+
"email": "validemail@financialapps.com",
|
12
|
+
"first_name": "Documents",
|
13
|
+
"last_name": "Testing"
|
14
|
+
},
|
15
|
+
"reference_no": "REFNO87687687",
|
16
|
+
"esign_documents": [
|
17
|
+
{
|
18
|
+
"document_id": "",
|
19
|
+
"template_id": "f6e9c513486c6a9468209a91ec14c25258eed515",
|
20
|
+
"name": "BH Form"
|
21
|
+
}
|
22
|
+
],
|
23
|
+
"completed_documents": [],
|
24
|
+
"tag": "approved",
|
25
|
+
"status": 1,
|
26
|
+
"signature_requests": null,
|
27
|
+
"reset_pwd": false,
|
28
|
+
"date_created": "2020-05-05T14:12:21.428Z",
|
29
|
+
"date_modified": null
|
30
|
+
}
|
31
|
+
]
|
32
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: finapps
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.0.
|
4
|
+
version: 5.0.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erich Quintero
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: finapps_core
|
@@ -154,42 +154,42 @@ dependencies:
|
|
154
154
|
name: rspec
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
|
-
- - ">="
|
158
|
-
- !ruby/object:Gem::Version
|
159
|
-
version: 3.9.0
|
160
157
|
- - "~>"
|
161
158
|
- !ruby/object:Gem::Version
|
162
159
|
version: '3.9'
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: 3.9.0
|
163
163
|
type: :development
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
166
166
|
requirements:
|
167
|
-
- - ">="
|
168
|
-
- !ruby/object:Gem::Version
|
169
|
-
version: 3.9.0
|
170
167
|
- - "~>"
|
171
168
|
- !ruby/object:Gem::Version
|
172
169
|
version: '3.9'
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 3.9.0
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
174
|
name: rubocop
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
176
176
|
requirements:
|
177
|
-
- - ">="
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
version: 0.79.0
|
180
177
|
- - "~>"
|
181
178
|
- !ruby/object:Gem::Version
|
182
179
|
version: '0.79'
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: 0.79.0
|
183
183
|
type: :development
|
184
184
|
prerelease: false
|
185
185
|
version_requirements: !ruby/object:Gem::Requirement
|
186
186
|
requirements:
|
187
|
-
- - ">="
|
188
|
-
- !ruby/object:Gem::Version
|
189
|
-
version: 0.79.0
|
190
187
|
- - "~>"
|
191
188
|
- !ruby/object:Gem::Version
|
192
189
|
version: '0.79'
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: 0.79.0
|
193
193
|
- !ruby/object:Gem::Dependency
|
194
194
|
name: rubocop-performance
|
195
195
|
requirement: !ruby/object:Gem::Requirement
|
@@ -254,22 +254,22 @@ dependencies:
|
|
254
254
|
name: webmock
|
255
255
|
requirement: !ruby/object:Gem::Requirement
|
256
256
|
requirements:
|
257
|
-
- - ">="
|
258
|
-
- !ruby/object:Gem::Version
|
259
|
-
version: 3.8.0
|
260
257
|
- - "~>"
|
261
258
|
- !ruby/object:Gem::Version
|
262
259
|
version: '3.8'
|
260
|
+
- - ">="
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 3.8.0
|
263
263
|
type: :development
|
264
264
|
prerelease: false
|
265
265
|
version_requirements: !ruby/object:Gem::Requirement
|
266
266
|
requirements:
|
267
|
-
- - ">="
|
268
|
-
- !ruby/object:Gem::Version
|
269
|
-
version: 3.8.0
|
270
267
|
- - "~>"
|
271
268
|
- !ruby/object:Gem::Version
|
272
269
|
version: '3.8'
|
270
|
+
- - ">="
|
271
|
+
- !ruby/object:Gem::Version
|
272
|
+
version: 3.8.0
|
273
273
|
description: A simple library for communicating with the FinApps REST API.
|
274
274
|
email:
|
275
275
|
- erich@financialapps.com
|
@@ -302,6 +302,8 @@ files:
|
|
302
302
|
- lib/finapps/rest/client.rb
|
303
303
|
- lib/finapps/rest/consumers.rb
|
304
304
|
- lib/finapps/rest/consumers_portfolios.rb
|
305
|
+
- lib/finapps/rest/documents_orders.rb
|
306
|
+
- lib/finapps/rest/esign_templates.rb
|
305
307
|
- lib/finapps/rest/operators.rb
|
306
308
|
- lib/finapps/rest/operators_password_resets.rb
|
307
309
|
- lib/finapps/rest/order_assignments.rb
|
@@ -341,6 +343,8 @@ files:
|
|
341
343
|
- spec/rest/client_spec.rb
|
342
344
|
- spec/rest/consumers_portfolios_spec.rb
|
343
345
|
- spec/rest/consumers_spec.rb
|
346
|
+
- spec/rest/documents_orders_spec.rb
|
347
|
+
- spec/rest/esign_templates_spec.rb
|
344
348
|
- spec/rest/operators_password_resets_spec.rb
|
345
349
|
- spec/rest/operators_spec.rb
|
346
350
|
- spec/rest/order_assignments_spec.rb
|
@@ -376,8 +380,13 @@ files:
|
|
376
380
|
- spec/support/fixtures/alert_definition.json
|
377
381
|
- spec/support/fixtures/alert_definitions.json
|
378
382
|
- spec/support/fixtures/alert_occurrences.json
|
383
|
+
- spec/support/fixtures/documents_order.json
|
384
|
+
- spec/support/fixtures/documents_orders.json
|
379
385
|
- spec/support/fixtures/error.json
|
386
|
+
- spec/support/fixtures/esign_templates.json
|
387
|
+
- spec/support/fixtures/invalid_order_id.json
|
380
388
|
- spec/support/fixtures/invalid_request_body.json
|
389
|
+
- spec/support/fixtures/invalid_signature_id.json
|
381
390
|
- spec/support/fixtures/invalid_tenant_credentials.json
|
382
391
|
- spec/support/fixtures/invalid_user_id.json
|
383
392
|
- spec/support/fixtures/invalid_user_institution_id.json
|
@@ -414,6 +423,7 @@ files:
|
|
414
423
|
- spec/support/fixtures/resource.json
|
415
424
|
- spec/support/fixtures/resource_not_found.json
|
416
425
|
- spec/support/fixtures/resources.json
|
426
|
+
- spec/support/fixtures/sign_url.json
|
417
427
|
- spec/support/fixtures/single_consumer_subscribe_error.json
|
418
428
|
- spec/support/fixtures/tenant_app_settings.json
|
419
429
|
- spec/support/fixtures/tenant_settings.json
|
@@ -453,47 +463,49 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
453
463
|
- !ruby/object:Gem::Version
|
454
464
|
version: '0'
|
455
465
|
requirements: []
|
456
|
-
rubygems_version: 3.
|
466
|
+
rubygems_version: 3.1.3
|
457
467
|
signing_key:
|
458
468
|
specification_version: 4
|
459
469
|
summary: FinApps REST API ruby client.
|
460
470
|
test_files:
|
461
|
-
- spec/
|
462
|
-
- spec/
|
471
|
+
- spec/spec_helper.rb
|
472
|
+
- spec/spec_helpers/client.rb
|
473
|
+
- spec/utils/query_builder_spec.rb
|
474
|
+
- spec/support/fake_api.rb
|
475
|
+
- spec/rest/tenant_app_settings_spec.rb
|
476
|
+
- spec/rest/order_reports_spec.rb
|
477
|
+
- spec/rest/client_spec.rb
|
478
|
+
- spec/rest/consumers_spec.rb
|
479
|
+
- spec/rest/portfolios_spec.rb
|
480
|
+
- spec/rest/order_statuses_spec.rb
|
481
|
+
- spec/rest/order_notifications_spec.rb
|
463
482
|
- spec/rest/operators_password_resets_spec.rb
|
464
|
-
- spec/rest/
|
465
|
-
- spec/rest/
|
466
|
-
- spec/rest/
|
483
|
+
- spec/rest/esign_templates_spec.rb
|
484
|
+
- spec/rest/portfolios_consumers_spec.rb
|
485
|
+
- spec/rest/operators_spec.rb
|
467
486
|
- spec/rest/version_spec.rb
|
468
|
-
- spec/rest/
|
469
|
-
- spec/rest/
|
487
|
+
- spec/rest/order_assignments_spec.rb
|
488
|
+
- spec/rest/api_request.rb
|
489
|
+
- spec/rest/order_refreshes_spec.rb
|
490
|
+
- spec/rest/alert_definitions_spec.rb
|
470
491
|
- spec/rest/order_tokens_spec.rb
|
471
|
-
- spec/rest/
|
472
|
-
- spec/rest/
|
492
|
+
- spec/rest/products_spec.rb
|
493
|
+
- spec/rest/sessions_spec.rb
|
494
|
+
- spec/rest/portfolios_available_consumers_spec.rb
|
495
|
+
- spec/rest/portfolios_alerts_spec.rb
|
496
|
+
- spec/rest/verix/verix_metadata_spec.rb
|
473
497
|
- spec/rest/verix/verix_records_spec.rb
|
474
498
|
- spec/rest/verix/verix_documents_spec.rb
|
475
|
-
- spec/rest/verix/verix_metadata_spec.rb
|
476
499
|
- spec/rest/verix/verix_pdf_documents_spec.rb
|
477
|
-
- spec/rest/client_spec.rb
|
478
|
-
- spec/rest/tenant_settings_spec.rb
|
479
|
-
- spec/rest/api_request.rb
|
480
|
-
- spec/rest/alert_occurrences_spec.rb
|
481
500
|
- spec/rest/password_resets_spec.rb
|
482
|
-
- spec/rest/
|
483
|
-
- spec/rest/portfolios_spec.rb
|
484
|
-
- spec/rest/order_statuses_spec.rb
|
485
|
-
- spec/rest/plaid/plaid_accounts_spec.rb
|
486
|
-
- spec/rest/plaid/plaid_account_permissions_spec.rb
|
501
|
+
- spec/rest/portfolio_reports_spec.rb
|
487
502
|
- spec/rest/plaid/plaid_webhooks_spec.rb
|
488
503
|
- spec/rest/plaid/plaid_institution_logos_spec.rb
|
489
504
|
- spec/rest/plaid/plaid_consumer_institutions_spec.rb
|
490
|
-
- spec/rest/
|
491
|
-
- spec/rest/
|
492
|
-
- spec/rest/
|
493
|
-
- spec/rest/
|
494
|
-
- spec/rest/
|
495
|
-
- spec/rest/
|
496
|
-
- spec/
|
497
|
-
- spec/utils/query_builder_spec.rb
|
498
|
-
- spec/spec_helpers/client.rb
|
499
|
-
- spec/spec_helper.rb
|
505
|
+
- spec/rest/plaid/plaid_accounts_spec.rb
|
506
|
+
- spec/rest/plaid/plaid_account_permissions_spec.rb
|
507
|
+
- spec/rest/consumers_portfolios_spec.rb
|
508
|
+
- spec/rest/documents_orders_spec.rb
|
509
|
+
- spec/rest/alert_occurrences_spec.rb
|
510
|
+
- spec/rest/tenant_settings_spec.rb
|
511
|
+
- spec/rest/orders_spec.rb
|