finapps 5.0.28 → 5.0.29

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: 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