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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41554740a84b37ce897625f30b710b515eac8cc50f8979b5ff7adc626db5c67c
4
- data.tar.gz: be701ec37e56af740acdd2a22d4234b1c6108637393527d8dec406d733b46742
3
+ metadata.gz: 1f24fb86c099693e3d0f4ffb075bbaadd4886e9c165680b192a86bc79b6e6b82
4
+ data.tar.gz: 65255650d2ac2cf388f83b9be35b9b9d838ae4c2d85d850e2b25352c73e95227
5
5
  SHA512:
6
- metadata.gz: 18d3595335d174560dac98c8c559d954a66e745a84ce8d921b727d7381b6bbe92091e162733f851110e78524069469f5a82420fc6636aaef951b4192c8f17127
7
- data.tar.gz: 55a19cd9dda94b7e250506833843932542e7f79bbd229161f8b5adc37d07e9403ba30d7f7e229da0da5f0605c065aa3525ad2f0d0e5e660951f5b57bae52c0a1
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'
@@ -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
- products
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
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinApps
4
+ module REST
5
+ class EsignTemplates < FinAppsCore::REST::Resources
6
+ def list
7
+ super('esign_templates')
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '5.0.28'
4
+ VERSION = '5.0.29'
5
5
  end
@@ -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
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ [
2
+ {
3
+ "template_id": "f6e9c513486c6a9468209a91ec14c25258eed515",
4
+ "name": "BH Form"
5
+ }
6
+ ]
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "order id is invalid"
4
+ ]
5
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "messages": [
3
+ "signature id not found"
4
+ ]
5
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "sign_url": "https://sign_url.com",
3
+ "expires_at": 1588953702
4
+ }
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.28
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-02-19 00:00:00.000000000 Z
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.0.6
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/rest/portfolios_consumers_spec.rb
462
- - spec/rest/consumers_portfolios_spec.rb
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/portfolios_available_consumers_spec.rb
465
- - spec/rest/products_spec.rb
466
- - spec/rest/alert_definitions_spec.rb
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/consumers_spec.rb
469
- - spec/rest/orders_spec.rb
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/tenant_app_settings_spec.rb
472
- - spec/rest/operators_spec.rb
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/order_reports_spec.rb
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/order_refreshes_spec.rb
491
- - spec/rest/order_notifications_spec.rb
492
- - spec/rest/portfolios_alerts_spec.rb
493
- - spec/rest/order_assignments_spec.rb
494
- - spec/rest/sessions_spec.rb
495
- - spec/rest/portfolio_reports_spec.rb
496
- - spec/support/fake_api.rb
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