finapps 5.0.28 → 5.0.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/.codeclimate.yml +2 -1
  3. data/.rubocop.yml +134 -61
  4. data/.rubocop_todo.yml +120 -0
  5. data/.tmuxinator.yml +1 -0
  6. data/.travis.yml +3 -1
  7. data/RELEASES.md +42 -0
  8. data/finapps.gemspec +3 -3
  9. data/lib/finapps.rb +4 -0
  10. data/lib/finapps/rest/alert_definitions.rb +1 -1
  11. data/lib/finapps/rest/alert_occurrences.rb +1 -1
  12. data/lib/finapps/rest/client.rb +12 -8
  13. data/lib/finapps/rest/consumers.rb +22 -6
  14. data/lib/finapps/rest/consumers_portfolios.rb +1 -1
  15. data/lib/finapps/rest/documents_orders.rb +105 -0
  16. data/lib/finapps/rest/documents_orders_notifications.rb +14 -0
  17. data/lib/finapps/rest/esign_templates.rb +11 -0
  18. data/lib/finapps/rest/operators.rb +5 -5
  19. data/lib/finapps/rest/operators_password_resets.rb +1 -1
  20. data/lib/finapps/rest/order_assignments.rb +1 -1
  21. data/lib/finapps/rest/order_reports.rb +1 -1
  22. data/lib/finapps/rest/orders.rb +10 -10
  23. data/lib/finapps/rest/plaid/plaid_consumer_institutions.rb +1 -1
  24. data/lib/finapps/rest/portfolio_reports.rb +1 -1
  25. data/lib/finapps/rest/portfolios.rb +1 -1
  26. data/lib/finapps/rest/portfolios_available_consumers.rb +1 -1
  27. data/lib/finapps/rest/portfolios_consumers.rb +1 -1
  28. data/lib/finapps/rest/sessions.rb +1 -1
  29. data/lib/finapps/rest/signed_documents_downloads.rb +17 -0
  30. data/lib/finapps/version.rb +1 -1
  31. data/spec/rest/alert_definitions_spec.rb +10 -2
  32. data/spec/rest/alert_occurrences_spec.rb +6 -1
  33. data/spec/rest/api_request.rb +1 -0
  34. data/spec/rest/client_spec.rb +2 -2
  35. data/spec/rest/consumers_portfolios_spec.rb +7 -2
  36. data/spec/rest/consumers_spec.rb +54 -7
  37. data/spec/rest/documents_orders_notifications_spec.rb +42 -0
  38. data/spec/rest/documents_orders_spec.rb +349 -0
  39. data/spec/rest/esign_templates_spec.rb +21 -0
  40. data/spec/rest/operators_password_resets_spec.rb +6 -1
  41. data/spec/rest/operators_spec.rb +22 -2
  42. data/spec/rest/order_assignments_spec.rb +6 -1
  43. data/spec/rest/order_notifications_spec.rb +3 -1
  44. data/spec/rest/order_refreshes_spec.rb +7 -1
  45. data/spec/rest/order_reports_spec.rb +7 -1
  46. data/spec/rest/order_statuses_spec.rb +7 -3
  47. data/spec/rest/order_tokens_spec.rb +7 -1
  48. data/spec/rest/orders_spec.rb +63 -29
  49. data/spec/rest/password_resets_spec.rb +20 -10
  50. data/spec/rest/plaid/plaid_account_permissions_spec.rb +5 -4
  51. data/spec/rest/plaid/plaid_accounts_spec.rb +9 -4
  52. data/spec/rest/plaid/plaid_consumer_institutions_spec.rb +10 -10
  53. data/spec/rest/plaid/plaid_institution_logos_spec.rb +1 -1
  54. data/spec/rest/plaid/plaid_webhooks_spec.rb +3 -1
  55. data/spec/rest/portfolio_reports_spec.rb +7 -2
  56. data/spec/rest/portfolios_alerts_spec.rb +6 -1
  57. data/spec/rest/portfolios_available_consumers_spec.rb +7 -2
  58. data/spec/rest/portfolios_consumers_spec.rb +13 -2
  59. data/spec/rest/portfolios_spec.rb +20 -5
  60. data/spec/rest/products_spec.rb +3 -1
  61. data/spec/rest/sessions_spec.rb +8 -4
  62. data/spec/rest/signed_documents_downloads_spec.rb +35 -0
  63. data/spec/rest/tenant_app_settings_spec.rb +9 -3
  64. data/spec/rest/tenant_settings_spec.rb +9 -3
  65. data/spec/rest/verix/verix_documents_spec.rb +13 -20
  66. data/spec/rest/verix/verix_metadata_spec.rb +1 -1
  67. data/spec/rest/verix/verix_pdf_documents_spec.rb +14 -19
  68. data/spec/rest/verix/verix_records_spec.rb +31 -10
  69. data/spec/rest/version_spec.rb +3 -1
  70. data/spec/spec_helper.rb +2 -2
  71. data/spec/support/fake_api.rb +64 -1
  72. data/spec/support/fixtures/documents_order.json +75 -0
  73. data/spec/support/fixtures/documents_orders.json +32 -0
  74. data/spec/support/fixtures/documents_orders_none.json +6 -0
  75. data/spec/support/fixtures/esign_templates.json +6 -0
  76. data/spec/support/fixtures/invalid_order_id.json +5 -0
  77. data/spec/support/fixtures/invalid_signature_id.json +5 -0
  78. data/spec/support/fixtures/sign_url.json +4 -0
  79. data/spec/support/fixtures/signed_document.pdf +0 -0
  80. data/spec/utils/query_builder_spec.rb +40 -14
  81. metadata +81 -60
@@ -6,12 +6,11 @@ require 'rest/api_request'
6
6
  RSpec.describe FinApps::REST::VerixRecords do
7
7
  include SpecHelpers::Client
8
8
 
9
- # noinspection RubyBlockToMethodReference
10
9
  let(:api_client) { client }
11
10
 
12
11
  describe '#create' do
13
12
  subject(:create) do
14
- FinApps::REST::VerixRecords.new(api_client).create(
13
+ described_class.new(api_client).create(
15
14
  code: 'authcode'
16
15
  )
17
16
  end
@@ -19,24 +18,46 @@ RSpec.describe FinApps::REST::VerixRecords do
19
18
  it_behaves_like 'an API request'
20
19
  it_behaves_like 'a successful request'
21
20
  it('returns an id') { expect(create[RESULTS]).to have_key(:_id) }
22
- it('returns a consumer id') { expect(create[RESULTS]).to have_key(:consumer_id) }
21
+
22
+ it('returns a consumer id') {
23
+ expect(create[RESULTS]).to have_key(:consumer_id)
24
+ }
25
+
23
26
  it('returns a status') { expect(create[RESULTS]).to have_key(:status) }
24
27
  it('returns an error node') { expect(create[RESULTS]).to have_key(:error) }
25
- it('returns a list of documents') { expect(create[RESULTS]).to have_key(:documents) }
26
- it('returns a list of downloaded documents') { expect(create[RESULTS]).to have_key(:downloaded_documents) }
28
+
29
+ it('returns a list of documents') {
30
+ expect(create[RESULTS]).to have_key(:documents)
31
+ }
32
+
33
+ it('returns a list of downloaded documents') {
34
+ expect(create[RESULTS]).to have_key(:downloaded_documents)
35
+ }
27
36
  end
28
37
 
29
38
  describe '#list' do
30
- subject(:list) { FinApps::REST::VerixRecords.new(api_client).list }
39
+ subject(:list) { described_class.new(api_client).list }
31
40
 
32
41
  it_behaves_like 'an API request'
33
42
  it_behaves_like 'a successful request'
34
43
  it('returns an array') { expect(list[RESULTS]).to be_an_instance_of(Array) }
35
44
  it('returns an id') { expect(list[RESULTS].first).to have_key(:_id) }
36
45
  it('returns a status') { expect(list[RESULTS].first).to have_key(:status) }
37
- it('returns a consumer id') { expect(list[RESULTS].first).to have_key(:consumer_id) }
38
- it('returns an error node') { expect(list[RESULTS].first).to have_key(:error) }
39
- it('returns a list of documents') { expect(list[RESULTS].first).to have_key(:documents) }
40
- it('returns a list of downloaded documents') { expect(list[RESULTS].first).to have_key(:downloaded_documents) }
46
+
47
+ it('returns a consumer id') {
48
+ expect(list[RESULTS].first).to have_key(:consumer_id)
49
+ }
50
+
51
+ it('returns an error node') {
52
+ expect(list[RESULTS].first).to have_key(:error)
53
+ }
54
+
55
+ it('returns a list of documents') {
56
+ expect(list[RESULTS].first).to have_key(:documents)
57
+ }
58
+
59
+ it('returns a list of downloaded documents') {
60
+ expect(list[RESULTS].first).to have_key(:downloaded_documents)
61
+ }
41
62
  end
42
63
  end
@@ -3,10 +3,12 @@
3
3
  RSpec.describe FinApps::REST::Version do
4
4
  include SpecHelpers::Client
5
5
 
6
- subject { FinApps::REST::Version.new(client) }
6
+ subject { described_class.new(client) }
7
+
7
8
  describe '#show' do
8
9
  it { expect { subject.show }.not_to raise_error }
9
10
  it('returns a string') { expect(subject.show[0]).to be_a(String) }
11
+
10
12
  it('starts with the words "Version =>"') do
11
13
  expect(subject.show[0]).to start_with('Version =>')
12
14
  end
@@ -21,7 +21,7 @@ RSpec.configure do |config|
21
21
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
22
22
  expectations.syntax = :expect
23
23
  end
24
- config.mock_with(:rspec) { |mocks| mocks.verify_partial_doubles = true }
24
+ config.mock_with(:rspec) {|mocks| mocks.verify_partial_doubles = true }
25
25
  # config.filter_run_including :focus => true
26
26
  config.default_formatter = 'doc' if config.files_to_run.one?
27
27
  config.order = :random
@@ -29,7 +29,7 @@ RSpec.configure do |config|
29
29
  config.warnings = true
30
30
  Kernel.srand config.seed
31
31
 
32
- config.before(:each) do
32
+ config.before do
33
33
  base_url =
34
34
  "#{FinAppsCore::REST::Defaults::DEFAULTS[:host]}/v#{FinAppsCore::REST::Defaults::API_VERSION}/"
35
35
  stub_request(:any, /#{base_url}/).to_rack(::FakeApi)
@@ -195,13 +195,76 @@ class FakeApi < Sinatra::Base
195
195
  post("/#{version}/orders") do
196
196
  request.body.rewind
197
197
  request_payload = JSON.parse request.body.read
198
- if %w[applicant institutions product].all? { |s| request_payload.key? s }
198
+ if %w[applicant institutions product].all? {|s| request_payload.key? s }
199
199
  json_response 200, 'order_token.json'
200
200
  else
201
201
  json_response 400, 'invalid_request_body.json'
202
202
  end
203
203
  end
204
204
 
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'
211
+ 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 }
223
+ json_response 200, 'documents_order.json'
224
+ else
225
+ json_response 400, 'invalid_request_body.json'
226
+ 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
235
+ 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
+ # documents orders notifications
255
+ post("/#{version}/documents/orders/valid_id/notify") { status 204 }
256
+ post("/#{version}/documents/orders/invalid_id/notify") do
257
+ json_response 400, 'invalid_order_id.json'
258
+ end
259
+
260
+ # signed documents downloads
261
+ get("/#{version}/consumers/:consumer_id/documents/:signature_request_id") do
262
+ pdf_response 'signed_document.pdf'
263
+ end
264
+
265
+ # esign_templates
266
+ get("/#{version}/esign_templates") { json_response 200, 'esign_templates.json' }
267
+
205
268
  # consumers
206
269
  get("/#{version}/consumers") do
207
270
  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
+ "total_records": 0,
3
+ "page": 0,
4
+ "total_pages": 0,
5
+ "records": []
6
+ }
@@ -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
+ }
@@ -1,38 +1,64 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'cgi'
4
+
3
5
  class FakeClass
4
6
  include FinApps::Utils::QueryBuilder
5
7
 
6
- def build_filter(param); end
8
+ def build_filter(params)
9
+ params&.key?(:role) ? {role: params[:role]} : {}
10
+ end
7
11
  end
8
12
 
9
13
  RSpec.describe FinApps::Utils::QueryBuilder do
10
- subject { FakeClass.new }
14
+ subject(:fake_class) { FakeClass.new }
11
15
 
12
16
  describe '#build_query_path' do
13
17
  let(:end_point) { 'orders' }
14
18
 
15
19
  context 'with full params' do
16
20
  let(:params) do
17
- { page: '1', requested: '20', sort: '-date', random: 'random' }
21
+ {
22
+ page: '1',
23
+ requested: '20',
24
+ sort: '-date',
25
+ random: 'random',
26
+ role: 2
27
+ }
28
+ end
29
+ let(:escaped_filter) { "filter=#{CGI.escape({role: 2}.to_json)}" }
30
+
31
+ it 'includes a page value in the query string' do
32
+ value = 'page=1'
33
+ expect(fake_class.build_query_path(end_point, params)).to include(value)
34
+ end
35
+
36
+ it 'includes a requested value in the query string' do
37
+ value = 'requested=20'
38
+ expect(fake_class.build_query_path(end_point, params)).to include(value)
18
39
  end
19
- it 'calls #build_filter and returns correct string' do
20
- allow(subject).to receive(:build_filter) { { role: 2 } }
21
- expect(subject).to receive(:build_filter).with(params)
22
- correct_string =
23
- 'orders?page=1&requested=20&sort=-date&filter=%7B%22role%22%3A2%7D'
24
- expect(subject.build_query_path(end_point, params)).to eq(
25
- correct_string
26
- )
40
+
41
+ it 'includes a sort value in the query string' do
42
+ value = 'sort=-date'
43
+ expect(fake_class.build_query_path(end_point, params)).to include(value)
44
+ end
45
+
46
+ it 'includes a filter value in the query string' do
47
+ value = escaped_filter
48
+ expect(fake_class.build_query_path(end_point, params)).to include(value)
49
+ end
50
+
51
+ it 'builds a properly formatted query string' do
52
+ expected = "orders?page=1&requested=20&sort=-date&#{escaped_filter}"
53
+ expect(fake_class.build_query_path(end_point, params)).to eq(expected)
27
54
  end
28
55
  end
29
56
 
30
57
  context 'with no params' do
31
58
  let(:params) { {} }
59
+
32
60
  it 'returns root' do
33
- allow(subject).to receive(:build_filter) { {} }
34
- expect(subject).to receive(:build_filter).with(params)
35
- expect(subject.build_query_path(end_point, params)).to eq(end_point)
61
+ expect(fake_class.build_query_path(end_point, params)).to eq(end_point)
36
62
  end
37
63
  end
38
64
  end
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.33
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-06-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: finapps_core
@@ -154,82 +154,82 @@ 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
- version: '0.79'
179
+ version: '0.86'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: 0.86.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
- version: '0.79'
189
+ version: '0.86'
190
+ - - ">="
191
+ - !ruby/object:Gem::Version
192
+ version: 0.86.0
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: rubocop-performance
195
195
  requirement: !ruby/object:Gem::Requirement
196
196
  requirements:
197
197
  - - "~>"
198
198
  - !ruby/object:Gem::Version
199
- version: '1.5'
199
+ version: '1.6'
200
200
  - - ">="
201
201
  - !ruby/object:Gem::Version
202
- version: 1.5.2
202
+ version: 1.6.1
203
203
  type: :development
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
206
206
  requirements:
207
207
  - - "~>"
208
208
  - !ruby/object:Gem::Version
209
- version: '1.5'
209
+ version: '1.6'
210
210
  - - ">="
211
211
  - !ruby/object:Gem::Version
212
- version: 1.5.2
212
+ version: 1.6.1
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: rubocop-rspec
215
215
  requirement: !ruby/object:Gem::Requirement
216
216
  requirements:
217
217
  - - "~>"
218
218
  - !ruby/object:Gem::Version
219
- version: '1.37'
219
+ version: '1.40'
220
220
  - - ">="
221
221
  - !ruby/object:Gem::Version
222
- version: 1.37.1
222
+ version: 1.40.0
223
223
  type: :development
224
224
  prerelease: false
225
225
  version_requirements: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - "~>"
228
228
  - !ruby/object:Gem::Version
229
- version: '1.37'
229
+ version: '1.40'
230
230
  - - ">="
231
231
  - !ruby/object:Gem::Version
232
- version: 1.37.1
232
+ version: 1.40.0
233
233
  - !ruby/object:Gem::Dependency
234
234
  name: sinatra
235
235
  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
@@ -285,6 +285,7 @@ files:
285
285
  - ".hound.yml"
286
286
  - ".rspec"
287
287
  - ".rubocop.yml"
288
+ - ".rubocop_todo.yml"
288
289
  - ".ruby-gemset"
289
290
  - ".ruby-version"
290
291
  - ".tmuxinator.yml"
@@ -302,6 +303,9 @@ files:
302
303
  - lib/finapps/rest/client.rb
303
304
  - lib/finapps/rest/consumers.rb
304
305
  - lib/finapps/rest/consumers_portfolios.rb
306
+ - lib/finapps/rest/documents_orders.rb
307
+ - lib/finapps/rest/documents_orders_notifications.rb
308
+ - lib/finapps/rest/esign_templates.rb
305
309
  - lib/finapps/rest/operators.rb
306
310
  - lib/finapps/rest/operators_password_resets.rb
307
311
  - lib/finapps/rest/order_assignments.rb
@@ -325,6 +329,7 @@ files:
325
329
  - lib/finapps/rest/portfolios_consumers.rb
326
330
  - lib/finapps/rest/products.rb
327
331
  - lib/finapps/rest/sessions.rb
332
+ - lib/finapps/rest/signed_documents_downloads.rb
328
333
  - lib/finapps/rest/tenant_app_settings.rb
329
334
  - lib/finapps/rest/tenant_settings.rb
330
335
  - lib/finapps/rest/verix/verix_documents.rb
@@ -341,6 +346,9 @@ files:
341
346
  - spec/rest/client_spec.rb
342
347
  - spec/rest/consumers_portfolios_spec.rb
343
348
  - spec/rest/consumers_spec.rb
349
+ - spec/rest/documents_orders_notifications_spec.rb
350
+ - spec/rest/documents_orders_spec.rb
351
+ - spec/rest/esign_templates_spec.rb
344
352
  - spec/rest/operators_password_resets_spec.rb
345
353
  - spec/rest/operators_spec.rb
346
354
  - spec/rest/order_assignments_spec.rb
@@ -363,6 +371,7 @@ files:
363
371
  - spec/rest/portfolios_spec.rb
364
372
  - spec/rest/products_spec.rb
365
373
  - spec/rest/sessions_spec.rb
374
+ - spec/rest/signed_documents_downloads_spec.rb
366
375
  - spec/rest/tenant_app_settings_spec.rb
367
376
  - spec/rest/tenant_settings_spec.rb
368
377
  - spec/rest/verix/verix_documents_spec.rb
@@ -376,8 +385,14 @@ files:
376
385
  - spec/support/fixtures/alert_definition.json
377
386
  - spec/support/fixtures/alert_definitions.json
378
387
  - spec/support/fixtures/alert_occurrences.json
388
+ - spec/support/fixtures/documents_order.json
389
+ - spec/support/fixtures/documents_orders.json
390
+ - spec/support/fixtures/documents_orders_none.json
379
391
  - spec/support/fixtures/error.json
392
+ - spec/support/fixtures/esign_templates.json
393
+ - spec/support/fixtures/invalid_order_id.json
380
394
  - spec/support/fixtures/invalid_request_body.json
395
+ - spec/support/fixtures/invalid_signature_id.json
381
396
  - spec/support/fixtures/invalid_tenant_credentials.json
382
397
  - spec/support/fixtures/invalid_user_id.json
383
398
  - spec/support/fixtures/invalid_user_institution_id.json
@@ -414,6 +429,8 @@ files:
414
429
  - spec/support/fixtures/resource.json
415
430
  - spec/support/fixtures/resource_not_found.json
416
431
  - spec/support/fixtures/resources.json
432
+ - spec/support/fixtures/sign_url.json
433
+ - spec/support/fixtures/signed_document.pdf
417
434
  - spec/support/fixtures/single_consumer_subscribe_error.json
418
435
  - spec/support/fixtures/tenant_app_settings.json
419
436
  - spec/support/fixtures/tenant_settings.json
@@ -453,47 +470,51 @@ required_rubygems_version: !ruby/object:Gem::Requirement
453
470
  - !ruby/object:Gem::Version
454
471
  version: '0'
455
472
  requirements: []
456
- rubygems_version: 3.0.6
473
+ rubygems_version: 3.1.3
457
474
  signing_key:
458
475
  specification_version: 4
459
476
  summary: FinApps REST API ruby client.
460
477
  test_files:
461
- - spec/rest/portfolios_consumers_spec.rb
462
- - spec/rest/consumers_portfolios_spec.rb
478
+ - spec/spec_helper.rb
479
+ - spec/spec_helpers/client.rb
480
+ - spec/utils/query_builder_spec.rb
481
+ - spec/support/fake_api.rb
482
+ - spec/rest/tenant_app_settings_spec.rb
483
+ - spec/rest/order_reports_spec.rb
484
+ - spec/rest/client_spec.rb
485
+ - spec/rest/consumers_spec.rb
486
+ - spec/rest/portfolios_spec.rb
487
+ - spec/rest/order_statuses_spec.rb
488
+ - spec/rest/order_notifications_spec.rb
489
+ - spec/rest/documents_orders_notifications_spec.rb
463
490
  - 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
491
+ - spec/rest/esign_templates_spec.rb
492
+ - spec/rest/portfolios_consumers_spec.rb
493
+ - spec/rest/operators_spec.rb
467
494
  - spec/rest/version_spec.rb
468
- - spec/rest/consumers_spec.rb
469
- - spec/rest/orders_spec.rb
495
+ - spec/rest/order_assignments_spec.rb
496
+ - spec/rest/api_request.rb
497
+ - spec/rest/order_refreshes_spec.rb
498
+ - spec/rest/alert_definitions_spec.rb
470
499
  - spec/rest/order_tokens_spec.rb
471
- - spec/rest/tenant_app_settings_spec.rb
472
- - spec/rest/operators_spec.rb
500
+ - spec/rest/products_spec.rb
501
+ - spec/rest/sessions_spec.rb
502
+ - spec/rest/portfolios_available_consumers_spec.rb
503
+ - spec/rest/portfolios_alerts_spec.rb
504
+ - spec/rest/verix/verix_metadata_spec.rb
473
505
  - spec/rest/verix/verix_records_spec.rb
474
506
  - spec/rest/verix/verix_documents_spec.rb
475
- - spec/rest/verix/verix_metadata_spec.rb
476
507
  - 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
508
+ - spec/rest/signed_documents_downloads_spec.rb
481
509
  - 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
510
+ - spec/rest/portfolio_reports_spec.rb
487
511
  - spec/rest/plaid/plaid_webhooks_spec.rb
488
512
  - spec/rest/plaid/plaid_institution_logos_spec.rb
489
513
  - 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
514
+ - spec/rest/plaid/plaid_accounts_spec.rb
515
+ - spec/rest/plaid/plaid_account_permissions_spec.rb
516
+ - spec/rest/consumers_portfolios_spec.rb
517
+ - spec/rest/documents_orders_spec.rb
518
+ - spec/rest/alert_occurrences_spec.rb
519
+ - spec/rest/tenant_settings_spec.rb
520
+ - spec/rest/orders_spec.rb