finapps 5.4.0 → 6.2.0

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: e65bb80fb054553a018a117ef278f51ca1f39cae1c51b32951c1c23b66456ae9
4
- data.tar.gz: 98365bd10401bd230e3884d626f7a305bd331c02497445fa25484ba09ba14b42
3
+ metadata.gz: 2f72a781755bf6469c544e60b5ae9fdf11edb57efe6dd947594c8c03e5d6204b
4
+ data.tar.gz: 06df03914644a7b4eea4a5a3478d12959b4470f30ed1c31adbe4beed7b83dcb3
5
5
  SHA512:
6
- metadata.gz: e64cf1d45c0895165c6d7a47a8e762c3fba2c8925f16177dca3702853aff83834e9296be6942bc6025a7a22fc472dd4c44a9db9d7da079777a0c6e51e7c76a44
7
- data.tar.gz: 3203972fa2e7001d4f099b8668368d263f253848e0b8d85ed6bba7dd9034c5344db5d15ca310f8daedeecc04d088a36c1332cb28f58460c6015cae1e2ae899da
6
+ metadata.gz: 27109c39e9a476272df05507d7ab97b017add220878422120279708c70db385dd82bc0fe65d6c92521e3e640f9bcde905810893cf0c88fec452b9cd2d51782ae
7
+ data.tar.gz: f02bc2aa43038d59036b43b312e81b9ef865082c28130c0b34745d4e7d2a84175fc4f00b0528433579334e906cfceb5409288bb0aa068fdc0eb4e033a1ee3f80
@@ -10,38 +10,32 @@ on:
10
10
  - ".github/**"
11
11
  - ".VERSION"
12
12
  jobs:
13
- tests:
13
+ test:
14
14
  if: "!contains(github.event.head_commit.message, 'skip ci')"
15
- runs-on: ubuntu-latest
16
-
17
15
  strategy:
18
- fail-fast: true
19
-
16
+ fail-fast: false
17
+ matrix:
18
+ os: [ubuntu-latest]
19
+ ruby: [2.6, 2.7, '3.0']
20
+ runs-on: ${{ matrix.os }}
20
21
  steps:
21
22
  - name: Checkout source code
22
- uses: actions/checkout@v2
23
+ uses: actions/checkout@v2.3.4
23
24
 
24
- - name: Install required ruby
25
+ - name: Install required ruby version
25
26
  uses: ruby/setup-ruby@v1
26
-
27
- - name: Setup cache key and directory for gems cache
28
- uses: actions/cache@v2.1.4
29
27
  with:
30
- path: vendor/bundle
31
- key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
32
- restore-keys: |
33
- ${{ runner.os }}-gems-
28
+ bundler-cache: true # runs 'bundle install' and caches gems
34
29
 
35
- - name: Bundle install
30
+ - name: Run rspec with coverage
36
31
  run: |
37
- bundle config path vendor/bundle
38
- bundle config set jobs 4
39
- bundle config set retry 3
40
- bundle install
32
+ COVERAGE=true bundle exec rspec
41
33
 
42
34
  - name: Run rubocop
43
- run: |
35
+ run: |
44
36
  bundle exec rubocop --parallel
45
37
 
46
- - name: Run tests
47
- run: bundle exec rspec
38
+ - name: Run Skunk on Project
39
+ run: |
40
+ gem install skunk
41
+ skunk lib/
@@ -11,7 +11,7 @@ jobs:
11
11
 
12
12
  steps:
13
13
  - name: Checkout source code
14
- uses: actions/checkout@v2
14
+ uses: actions/checkout@v2.3.4
15
15
  with:
16
16
  persist-credentials: false
17
17
  fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
@@ -7,8 +7,17 @@ jobs:
7
7
  label:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
- - uses: mheap/github-action-required-labels@v1
10
+ - uses: mheap/github-action-required-labels@v1.1.2
11
11
  with:
12
- mode: exactly
12
+ mode: minimum
13
13
  count: 1
14
- labels: "bug, change, enhancement"
14
+ #
15
+ # Releases will group changes under Added/Fixed/Changed sub-headers
16
+ # based on labels and follwing these rules:
17
+ #
18
+ # Added: enhancement
19
+ # Fixed: bug
20
+ # Changed: maintenance, change, dependencies (used by Dependabot)
21
+ # Ignore: skip-changelog
22
+ #
23
+ labels: "enhancement, bug, maintenance, change, dependencies, skip-changelog"
data/.rubocop.yml CHANGED
@@ -47,6 +47,7 @@ Metrics/ClassLength:
47
47
  Exclude:
48
48
  - app/controllers/orders_controller.rb
49
49
  - app/models/order.rb
50
+ - spec/support/fake_api.rb
50
51
  Metrics/BlockLength:
51
52
  IgnoredMethods: ['describe', 'context']
52
53
  Exclude:
data/README.md CHANGED
@@ -4,9 +4,6 @@ FinApps Ruby-Client
4
4
 
5
5
  [![Gem Version](https://img.shields.io/gem/v/finapps.svg)](https://rubygems.org/gems/finapps)
6
6
  ![Main](https://github.com/finapps/ruby-client/workflows/Main/badge.svg)
7
- [![Build Status](https://travis-ci.org/finapps/ruby-client.svg?branch=master)](https://travis-ci.org/finapps/ruby-client)
8
- [![Code Climate](https://codeclimate.com/github/finapps/ruby-client/badges/gpa.svg)](https://codeclimate.com/github/finapps/ruby-client)
9
- [![Test Coverage](https://codeclimate.com/github/finapps/ruby-client/badges/coverage.svg)](https://codeclimate.com/github/finapps/ruby-client/coverage)
10
7
  [![License](http://img.shields.io/:license-mit-blue.svg?style=flat-square)](http://finapps.mit-license.org)
11
8
 
12
9
 
data/finapps.gemspec CHANGED
@@ -20,20 +20,18 @@ Gem::Specification.new do |spec|
20
20
  spec.test_files = Dir['spec/**/*.rb']
21
21
  spec.require_paths = ['lib']
22
22
 
23
- spec.add_runtime_dependency 'finapps_core', '~> 5.0', '>= 5.0.15'
23
+ spec.add_runtime_dependency 'finapps_core', '~> 6.0', '>= 6.0.0'
24
24
 
25
- spec.add_development_dependency 'bundler', '~> 2.0', '>= 2.0.2'
26
- spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0', '>= 1.0.9'
27
- spec.add_development_dependency 'guard', '~> 2.16', '>= 2.16.1'
28
- spec.add_development_dependency 'guard-rspec', '~> 4.7', '>= 4.7.3'
25
+ spec.add_development_dependency 'bundler', '~> 2.2', '>= 2.2.16'
29
26
  spec.add_development_dependency 'rake', '~> 13.0', '>= 13.0.1'
30
27
  spec.add_development_dependency 'rspec', '~> 3.10', '>= 3.10.0'
31
- spec.add_development_dependency 'rubocop', '~> 1.9', '>= 1.9.1'
32
28
  spec.add_development_dependency 'rubocop-performance', '~> 1.9', '>= 1.9.2'
33
29
  spec.add_development_dependency 'rubocop-rake', '~> 0.5', '>= 0.5.1'
34
- spec.add_development_dependency 'rubocop-rspec', '~> 2.2', '>= 2.2.0'
30
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.4', '>= 2.4.0'
31
+ spec.add_development_dependency 'simplecov', '~> 0.21', '>= 0.21.2'
32
+ spec.add_development_dependency 'simplecov-console', '~> 0.9'
35
33
  spec.add_development_dependency 'sinatra', '~> 2.1', '>= 2.1.0'
36
- spec.add_development_dependency 'webmock', '~> 3.11', '>= 3.11.2'
34
+ spec.add_development_dependency 'webmock', '~> 3.12', '>= 3.12.2'
37
35
 
38
36
  spec.extra_rdoc_files = %w[README.md LICENSE.txt]
39
37
  spec.rdoc_options = %w[--line-numbers --inline-source --title finapps-ruby --main README.md]
data/lib/finapps.rb CHANGED
@@ -6,6 +6,7 @@ require 'faraday_middleware'
6
6
  require 'finapps_core'
7
7
  require 'finapps/rest/version'
8
8
  require 'finapps/rest/consumers'
9
+ require 'finapps/rest/consumer_login_tokens'
9
10
  require 'finapps/rest/sessions'
10
11
  require 'finapps/rest/order_tokens'
11
12
  require 'finapps/rest/orders'
@@ -14,6 +15,7 @@ require 'finapps/rest/order_statuses'
14
15
  require 'finapps/rest/order_notifications'
15
16
  require 'finapps/rest/password_resets'
16
17
  require 'finapps/rest/operators'
18
+ require 'finapps/rest/operator_login_tokens'
17
19
  require 'finapps/rest/operators_password_resets'
18
20
  require 'finapps/rest/products'
19
21
  require 'finapps/rest/order_assignments'
@@ -10,6 +10,7 @@ module FinApps
10
10
  alert_definitions
11
11
  alert_occurrences
12
12
  consumers
13
+ consumer_login_tokens
13
14
  consumers_portfolios
14
15
  documents_orders
15
16
  documents_orders_notifications
@@ -24,6 +25,7 @@ module FinApps
24
25
  order_statuses
25
26
  order_tokens
26
27
  operators
28
+ operator_login_tokens
27
29
  operators_password_resets
28
30
  password_resets
29
31
  plaid_webhooks
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinApps
4
+ module REST
5
+ class ConsumerLoginTokens < FinAppsCore::REST::Resources
6
+ def create(params)
7
+ not_blank(params, :params)
8
+ super params, 'login/token'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -56,7 +56,7 @@ module FinApps
56
56
  def search_query(term)
57
57
  query = with_space_search(term).concat(name_search(term))
58
58
  {
59
- "$or": query
59
+ '$or': query
60
60
  }
61
61
  end
62
62
 
@@ -75,28 +75,28 @@ module FinApps
75
75
  return {} unless term
76
76
 
77
77
  query = with_space_search(term).concat(name_search(term))
78
- {"$or": query}
78
+ {'$or': query}
79
79
  end
80
80
 
81
81
  def name_search(term)
82
82
  search_arr = []
83
83
  if /\s/.match?(term)
84
84
  term.split.each do |t|
85
- search_arr.append("applicant.first_name": t)
86
- search_arr.append("applicant.last_name": t)
85
+ search_arr.append('applicant.first_name': t)
86
+ search_arr.append('applicant.last_name': t)
87
87
  end
88
88
  end
89
89
  search_arr
90
90
  end
91
91
 
92
92
  def with_space_search(term)
93
- [{"applicant.email": term},
94
- {"applicant.first_name": term},
95
- {"applicant.last_name": term},
96
- {"applicant.external_id": term},
93
+ [{'applicant.email': term},
94
+ {'applicant.first_name': term},
95
+ {'applicant.last_name': term},
96
+ {'applicant.external_id': term},
97
97
  {
98
98
  reference_no: {
99
- "$regex": "^#{term}", "$options": 'i'
99
+ '$regex': "^#{term}", '$options': 'i'
100
100
  }
101
101
  }]
102
102
  end
@@ -9,7 +9,7 @@ module FinApps
9
9
 
10
10
  path =
11
11
  "consumers/#{ERB::Util.url_encode(consumer_id)}/"\
12
- "documents/#{ERB::Util.url_encode(doc_id)}?thumbnail=#{thumbnail}"
12
+ "documents/#{ERB::Util.url_encode(doc_id)}?thumbnail=#{thumbnail}"
13
13
  super(nil, path)
14
14
  end
15
15
 
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinApps
4
+ module REST
5
+ class OperatorLoginTokens < FinAppsCore::REST::Resources
6
+ def create(params)
7
+ not_blank(params, :params)
8
+ super params, 'login/operators/token'
9
+ end
10
+ end
11
+ end
12
+ end
@@ -69,7 +69,7 @@ module FinApps
69
69
 
70
70
  def role_query(role)
71
71
  if role.is_a?(Array)
72
- {role: {"$in": role.map(&:to_i)}}
72
+ {role: {'$in': role.map(&:to_i)}}
73
73
  else
74
74
  {role: role.to_i}
75
75
  end
@@ -66,28 +66,28 @@ module FinApps
66
66
  return {} unless term
67
67
 
68
68
  query = search_query_object(term).concat(consumer_name_query(term))
69
- {"$or": query}
69
+ {'$or': query}
70
70
  end
71
71
 
72
72
  def consumer_name_query(term)
73
73
  search_arr = []
74
74
  if /\s/.match?(term)
75
75
  term.split.each do |t|
76
- search_arr.append("applicant.first_name": t)
77
- search_arr.append("applicant.last_name": t)
76
+ search_arr.append('applicant.first_name': t)
77
+ search_arr.append('applicant.last_name': t)
78
78
  end
79
79
  end
80
80
  search_arr
81
81
  end
82
82
 
83
83
  def search_query_object(term)
84
- [{public_id: {"$regex": "^#{term}", "$options": 'i'}},
85
- {"assignment.last_name": term},
86
- {"applicant.first_name": term},
87
- {"applicant.last_name": term},
84
+ [{public_id: {'$regex': "^#{term}", '$options': 'i'}},
85
+ {'assignment.last_name': term},
86
+ {'applicant.first_name': term},
87
+ {'applicant.last_name': term},
88
88
  {
89
- "requestor.reference_no": {
90
- "$regex": "^#{term}", "$options": 'i'
89
+ 'requestor.reference_no': {
90
+ '$regex': "^#{term}", '$options': 'i'
91
91
  }
92
92
  }]
93
93
  end
@@ -95,7 +95,7 @@ module FinApps
95
95
  def status_query(status)
96
96
  if status
97
97
  if status.is_a?(Array)
98
- {status: {"$in": status.map(&:to_i)}}
98
+ {status: {'$in': status.map(&:to_i)}}
99
99
  else
100
100
  {status: status.to_i}
101
101
  end
@@ -107,7 +107,7 @@ module FinApps
107
107
  def assignment_query(assignment)
108
108
  # translate "" to null assignment
109
109
  if assignment
110
- {"assignment.operator_id": assignment.empty? ? nil : assignment}
110
+ {'assignment.operator_id': assignment.empty? ? nil : assignment}
111
111
  else
112
112
  {}
113
113
  end
@@ -124,9 +124,9 @@ module FinApps
124
124
  def relation_query(relation, search_term)
125
125
  if !search_term && !nil_or_empty?(relation)
126
126
  {
127
- "$or": [
128
- {public_id: {"$in": relation}},
129
- {original_order_id: {"$in": relation}}
127
+ '$or': [
128
+ {public_id: {'$in': relation}},
129
+ {original_order_id: {'$in': relation}}
130
130
  ]
131
131
  }
132
132
  else
@@ -62,13 +62,13 @@ module FinApps
62
62
  return {} unless term
63
63
 
64
64
  query = search_query_object(term)
65
- {"$or": query}
65
+ {'$or': query}
66
66
  end
67
67
 
68
68
  def search_query_object(term)
69
69
  [
70
- {"consumer.public_id": term},
71
- {"consumer.email": term}
70
+ {'consumer.public_id': term},
71
+ {'consumer.email': term}
72
72
  ]
73
73
  end
74
74
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '5.4.0'
4
+ VERSION = '6.2.0'
5
5
  end
@@ -46,7 +46,7 @@ RSpec.describe FinApps::REST::AlertDefinitions do
46
46
  list
47
47
  url =
48
48
  "#{versioned_api_path}/portfolio/alerts/definitions?page=2&requested=25&" \
49
- 'sort=-created_date'
49
+ 'sort=-created_date'
50
50
  expect(WebMock).to have_requested(:get, url)
51
51
  end
52
52
  end
@@ -53,7 +53,7 @@ RSpec.describe FinApps::REST::AlertOccurrences do
53
53
  list
54
54
  url =
55
55
  "#{versioned_api_path}/portfolio/alerts/occurrences?" \
56
- 'filter=%7B%22portfolio_id%22:%22valid_id%22%7D&page=2&requested=25&sort=-created_date'
56
+ 'filter=%7B%22portfolio_id%22:%22valid_id%22%7D&page=2&requested=25&sort=-created_date'
57
57
  expect(WebMock).to have_requested(:get, url)
58
58
  end
59
59
  end
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helpers/client'
4
+
5
+ RSpec.describe FinApps::REST::ConsumerLoginTokens do
6
+ context 'when initialized with valid FinApps::Client object' do
7
+ include SpecHelpers::Client
8
+ subject(:consumer_login_tokens) { described_class.new(client) }
9
+
10
+ describe '#create' do
11
+ let(:results) { create[0] }
12
+ let(:error_messages) { create[1] }
13
+
14
+ context 'when missing params' do
15
+ let(:create) { consumer_login_tokens.create(nil) }
16
+
17
+ error = FinAppsCore::MissingArgumentsError
18
+ it { expect { create }.to raise_error(error) }
19
+ end
20
+
21
+ context 'when invalid params are provided' do
22
+ let(:create) { consumer_login_tokens.create(params: 'invalid') }
23
+
24
+ it { expect { create }.not_to raise_error }
25
+ it('results is nil') { expect(results).to be_nil }
26
+
27
+ it('error messages array is populated') do
28
+ expect(error_messages.first.downcase).to eq('invalid request body')
29
+ end
30
+ end
31
+
32
+ context 'when valid params are provided' do
33
+ let(:create) { consumer_login_tokens.create(params: 'valid') }
34
+
35
+ it { expect { create }.not_to raise_error }
36
+ it('returns an array') { expect(create).to be_a(Array) }
37
+ it { expect(results).to have_key(:public_id) }
38
+ it { expect(results).to have_key(:external_id) }
39
+ it { expect(results).to have_key(:tenant_id) }
40
+ it { expect(results).to have_key(:role) }
41
+ it { expect(results).to have_key(:memo) }
42
+ it { expect(results).to have_key(:token) }
43
+ it('returns no error messages') { expect(error_messages).to be_empty }
44
+ end
45
+ end
46
+ end
47
+ end
@@ -56,7 +56,7 @@ RSpec.describe FinApps::REST::ConsumersPortfolios do
56
56
  list
57
57
  url =
58
58
  "#{versioned_api_path}/consumers/#{id}/portfolios?page=2&" \
59
- 'requested=25&sort=-created_date'
59
+ 'requested=25&sort=-created_date'
60
60
  expect(WebMock).to have_requested(:get, url)
61
61
  end
62
62
  end
@@ -119,11 +119,11 @@ RSpec.describe FinApps::REST::Consumers do
119
119
  it 'builds query and sends proper request' do
120
120
  list
121
121
  filter = '{"$or":['\
122
- '{"external_id":"term"},'\
123
- '{"email":"term"},'\
124
- '{"first_name":"term"},'\
125
- '{"last_name":"term"}'\
126
- ']}'
122
+ '{"external_id":"term"},'\
123
+ '{"email":"term"},'\
124
+ '{"first_name":"term"},'\
125
+ '{"last_name":"term"}'\
126
+ ']}'
127
127
  query = "?filter=#{filter}&page=2&requested=25&sort=date_created"
128
128
  url = "#{versioned_api_path}/consumers#{query}"
129
129
  expect(WebMock).to have_requested(:get, url)
@@ -142,15 +142,15 @@ RSpec.describe FinApps::REST::Consumers do
142
142
  it 'treats space as start of a new query for first and last name' do
143
143
  list
144
144
  filter = '{"$or":['\
145
- '{"external_id":"Two terms"},'\
146
- '{"email":"Two terms"},'\
147
- '{"first_name":"Two terms"},'\
148
- '{"last_name":"Two terms"},'\
149
- '{"first_name":"Two"},'\
150
- '{"last_name":"Two"},'\
151
- '{"first_name":"terms"},'\
152
- '{"last_name":"terms"}'\
153
- ']}'
145
+ '{"external_id":"Two terms"},'\
146
+ '{"email":"Two terms"},'\
147
+ '{"first_name":"Two terms"},'\
148
+ '{"last_name":"Two terms"},'\
149
+ '{"first_name":"Two"},'\
150
+ '{"last_name":"Two"},'\
151
+ '{"first_name":"terms"},'\
152
+ '{"last_name":"terms"}'\
153
+ ']}'
154
154
  query = "?filter=#{filter}&page=2&requested=25&sort=date_created"
155
155
  url = "#{versioned_api_path}/consumers#{query}"
156
156
  expect(WebMock).to have_requested(:get, url)
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helpers/client'
4
+
5
+ RSpec.describe FinApps::REST::OperatorLoginTokens do
6
+ context 'when initialized with valid FinApps::Client object' do
7
+ include SpecHelpers::Client
8
+ subject(:operator_login_tokens) { described_class.new(client) }
9
+
10
+ describe '#create' do
11
+ let(:results) { create[0] }
12
+ let(:error_messages) { create[1] }
13
+
14
+ context 'when missing params' do
15
+ let(:create) { subject.create(nil) }
16
+
17
+ error = FinAppsCore::MissingArgumentsError
18
+ it { expect { create }.to raise_error(error) }
19
+ end
20
+
21
+ context 'when invalid params are provided' do
22
+ let(:create) { subject.create(params: 'invalid') }
23
+
24
+ it { expect { create }.not_to raise_error }
25
+ it('results is nil') { expect(results).to be_nil }
26
+
27
+ it('error messages array is populated') do
28
+ expect(error_messages.first.downcase).to eq('invalid request body')
29
+ end
30
+ end
31
+
32
+ context 'when valid params are provided' do
33
+ let(:create) { subject.create(params: 'valid') }
34
+
35
+ it { expect { create }.not_to raise_error }
36
+ it('returns an array') { expect(create).to be_a(Array) }
37
+ it { expect(results).to have_key(:public_id) }
38
+ it { expect(results).to have_key(:role) }
39
+ it('returns no error messages') { expect(error_messages).to be_empty }
40
+ end
41
+ end
42
+ end
43
+ end
@@ -61,7 +61,7 @@ RSpec.describe FinApps::REST::Operators do
61
61
  list
62
62
  url =
63
63
  "#{versioned_api_path}/operators?filter=%7B%22last_name%22:%22term%22," \
64
- '%22role%22:2%7D&page=2&requested=25&sort=date_created'
64
+ '%22role%22:2%7D&page=2&requested=25&sort=date_created'
65
65
  expect(WebMock).to have_requested(:get, url)
66
66
  end
67
67
  end
@@ -133,13 +133,13 @@ RSpec.describe FinApps::REST::Orders do
133
133
  it 'builds query and sends proper request' do
134
134
  list
135
135
  url = "#{versioned_api_path}/orders?"\
136
- 'filter=%7B%22$or%22:%5B%7B%22public_id%22:%7B%22$regex%22:%22%5E'\
137
- 'term%22,%22$options%22:%22i%22%7D%7D,%7B%22assignment.last_name%22:%22'\
138
- 'term%22%7D,%7B%22applicant.first_name%22:%22term%22%7D,%7B%22'\
139
- 'applicant.last_name%22:%22term%22%7D,%7B%22requestor.reference_no'\
140
- '%22:%7B%22$regex%22:%22%5Eterm%22,%22$options%22:%22i%22%7D%7D%5D,%22'\
141
- 'status%22:%7B%22$in%22:%5B1,7%5D%7D,%22assignment.operator_id%22:%22'\
142
- 'valid_operator%22,%22consumer_id%22:%22valid_consumer_id%22%7D&page=2&requested=25&sort=status'
136
+ 'filter=%7B%22$or%22:%5B%7B%22public_id%22:%7B%22$regex%22:%22%5E'\
137
+ 'term%22,%22$options%22:%22i%22%7D%7D,%7B%22assignment.last_name%22:%22'\
138
+ 'term%22%7D,%7B%22applicant.first_name%22:%22term%22%7D,%7B%22'\
139
+ 'applicant.last_name%22:%22term%22%7D,%7B%22requestor.reference_no'\
140
+ '%22:%7B%22$regex%22:%22%5Eterm%22,%22$options%22:%22i%22%7D%7D%5D,%22'\
141
+ 'status%22:%7B%22$in%22:%5B1,7%5D%7D,%22assignment.operator_id%22:%22'\
142
+ 'valid_operator%22,%22consumer_id%22:%22valid_consumer_id%22%7D&page=2&requested=25&sort=status'
143
143
  expect(WebMock).to have_requested(:get, url)
144
144
  end
145
145
 
@@ -147,12 +147,12 @@ RSpec.describe FinApps::REST::Orders do
147
147
  params[:searchTerm] = nil
148
148
  list
149
149
  url = "#{versioned_api_path}/orders?"\
150
- 'filter=%7B%22status%22:%7B%22$in%22:%5B1,7%5D%7D,' \
151
- '%22assignment.operator_id%22:%22valid_operator%22,'\
152
- '%22consumer_id%22:%22valid_consumer_id%22,' \
153
- '%22$or%22:%5B%7B%22public_id%22:%7B%22$in%22:%5B%22valid_order_id%22%5D%7D%7D,'\
154
- '%7B%22original_order_id%22:%7B%22$in%22:%5B%22valid_order_id%22%5D%7D%7D%5D%7D&'\
155
- 'page=2&requested=25&sort=status'
150
+ 'filter=%7B%22status%22:%7B%22$in%22:%5B1,7%5D%7D,' \
151
+ '%22assignment.operator_id%22:%22valid_operator%22,'\
152
+ '%22consumer_id%22:%22valid_consumer_id%22,' \
153
+ '%22$or%22:%5B%7B%22public_id%22:%7B%22$in%22:%5B%22valid_order_id%22%5D%7D%7D,'\
154
+ '%7B%22original_order_id%22:%7B%22$in%22:%5B%22valid_order_id%22%5D%7D%7D%5D%7D&'\
155
+ 'page=2&requested=25&sort=status'
156
156
  expect(WebMock).to have_requested(:get, url)
157
157
  end
158
158
 
@@ -160,16 +160,16 @@ RSpec.describe FinApps::REST::Orders do
160
160
  params[:searchTerm] = 'Spacing Out'
161
161
  list
162
162
  url = "#{versioned_api_path}/orders?"\
163
- 'filter=%7B%22$or%22:%5B%7B%22public_id%22:%7B%22$regex%22:%22%5E'\
164
- 'Spacing%20Out%22,%22$options%22:%22i%22%7D%7D,%7B%22assignment.last_name'\
165
- '%22:%22Spacing%20Out%22%7D,%7B%22applicant.first_name%22:%22'\
166
- 'Spacing%20Out%22%7D,%7B%22applicant.last_name%22:%22Spacing%20Out'\
167
- '%22%7D,%7B%22requestor.reference_no%22:%7B%22$regex%22:%22%5ESpacing%20Out'\
168
- '%22,%22$options%22:%22i%22%7D%7D,%7B%22applicant.first_name%22:%22Spacing'\
169
- '%22%7D,%7B%22applicant.last_name%22:%22Spacing%22%7D,%7B%22applicant.first_name'\
170
- '%22:%22Out%22%7D,%7B%22applicant.last_name%22:%22Out%22%7D%5D,%22status'\
171
- '%22:%7B%22$in%22:%5B1,7%5D%7D,%22assignment.operator_id%22:%22valid_operator'\
172
- '%22,%22consumer_id%22:%22valid_consumer_id%22%7D&page=2&requested=25&sort=status'
163
+ 'filter=%7B%22$or%22:%5B%7B%22public_id%22:%7B%22$regex%22:%22%5E'\
164
+ 'Spacing%20Out%22,%22$options%22:%22i%22%7D%7D,%7B%22assignment.last_name'\
165
+ '%22:%22Spacing%20Out%22%7D,%7B%22applicant.first_name%22:%22'\
166
+ 'Spacing%20Out%22%7D,%7B%22applicant.last_name%22:%22Spacing%20Out'\
167
+ '%22%7D,%7B%22requestor.reference_no%22:%7B%22$regex%22:%22%5ESpacing%20Out'\
168
+ '%22,%22$options%22:%22i%22%7D%7D,%7B%22applicant.first_name%22:%22Spacing'\
169
+ '%22%7D,%7B%22applicant.last_name%22:%22Spacing%22%7D,%7B%22applicant.first_name'\
170
+ '%22:%22Out%22%7D,%7B%22applicant.last_name%22:%22Out%22%7D%5D,%22status'\
171
+ '%22:%7B%22$in%22:%5B1,7%5D%7D,%22assignment.operator_id%22:%22valid_operator'\
172
+ '%22,%22consumer_id%22:%22valid_consumer_id%22%7D&page=2&requested=25&sort=status'
173
173
  expect(WebMock).to have_requested(:get, url)
174
174
  end
175
175
 
@@ -177,7 +177,7 @@ RSpec.describe FinApps::REST::Orders do
177
177
  described_class.new(client).list(assignment: '')
178
178
 
179
179
  url = "#{versioned_api_path}/orders?"\
180
- 'filter=%7B%22assignment.operator_id%22:null%7D'
180
+ 'filter=%7B%22assignment.operator_id%22:null%7D'
181
181
  expect(WebMock).to have_requested(:get, url)
182
182
  end
183
183
  end
@@ -46,7 +46,7 @@ RSpec.describe FinApps::REST::PortfolioReports do
46
46
  list
47
47
  url =
48
48
  "#{versioned_api_path}/portfolio/reports?page=2&requested=25&" \
49
- 'sort=-created_date'
49
+ 'sort=-created_date'
50
50
  expect(WebMock).to have_requested(:get, url)
51
51
  end
52
52
  end
@@ -56,7 +56,7 @@ RSpec.describe FinApps::REST::PortfoliosAvailableConsumers do
56
56
  list
57
57
  url =
58
58
  "#{versioned_api_path}/portfolios/#{id}/consumers/available?page=2&" \
59
- 'requested=25&sort=-created_date'
59
+ 'requested=25&sort=-created_date'
60
60
  expect(WebMock).to have_requested(:get, url)
61
61
  end
62
62
  end
@@ -56,7 +56,7 @@ RSpec.describe FinApps::REST::PortfoliosConsumers do
56
56
  list
57
57
  url =
58
58
  "#{versioned_api_path}/portfolios/#{portfolio_id}/consumers?page=2&" \
59
- 'requested=25&sort=-created_date'
59
+ 'requested=25&sort=-created_date'
60
60
  expect(WebMock).to have_requested(:get, url)
61
61
  end
62
62
  end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- if ENV['CODECLIMATE_REPO_TOKEN']
4
- # require 'codeclimate-test-reporter'
5
- # CodeClimate::TestReporter.start
3
+ if ENV['COVERAGE'] == 'true'
6
4
  require 'simplecov'
7
- SimpleCov.start
5
+ require 'simplecov-console'
6
+
7
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ SimpleCov::Formatter::Console,
10
+ ]
11
+
12
+ SimpleCov.start do
13
+ track_files 'lib/**/*.rb'
14
+ end
15
+
16
+ puts "Using SimpleCov v#{SimpleCov::VERSION}"
8
17
  end
9
18
 
10
19
  require 'bundler/setup'
@@ -358,6 +358,28 @@ module Fake
358
358
  end
359
359
  end
360
360
 
361
+ # operators login tokens
362
+ post("/#{version}/login/token") do
363
+ request.body.rewind
364
+ request_payload = JSON.parse request.body.read
365
+ if request_payload['params'] == 'valid'
366
+ json_response 200, 'operator_login_token.json'
367
+ else
368
+ json_response 400, 'invalid_request_body.json'
369
+ end
370
+ end
371
+
372
+ # operators login tokens
373
+ post("/#{version}/login/operators/token") do
374
+ request.body.rewind
375
+ request_payload = JSON.parse request.body.read
376
+ if request_payload['params'] == 'valid'
377
+ json_response 200, 'consumer_login_token.json'
378
+ else
379
+ json_response 400, 'invalid_request_body.json'
380
+ end
381
+ end
382
+
361
383
  # session
362
384
  post("/#{version}/login") do
363
385
  request.body.rewind
@@ -0,0 +1,23 @@
1
+ {
2
+ "auth0_id": "string",
3
+ "date_created": "2021-07-19T13:04:09Z",
4
+ "date_modified": "2021-07-19T13:04:09Z",
5
+ "email": "string",
6
+ "external_id": "string",
7
+ "first_name": "string",
8
+ "last_name": "string",
9
+ "locked": true,
10
+ "memo": "string",
11
+ "metadata": {
12
+ "property1": { },
13
+ "property2": { }
14
+ },
15
+ "phone": "string",
16
+ "phone_country_code": "string",
17
+ "postal_code": "string",
18
+ "public_id": "string",
19
+ "role": 0,
20
+ "status": 0,
21
+ "tenant_id": "string",
22
+ "token": "string"
23
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "auth0_id": "string",
3
+ "date_created": "2021-07-16T19:14:23Z",
4
+ "date_modified": "2021-07-16T19:14:23Z",
5
+ "email": "string",
6
+ "external_id": "string",
7
+ "first_name": "string",
8
+ "last_name": "string",
9
+ "locked": true,
10
+ "memo": "string",
11
+ "phone": "string",
12
+ "phone_country_code": "string",
13
+ "public_id": "string",
14
+ "role": 0,
15
+ "status": 0,
16
+ "tenant_id": "string",
17
+ "token": "string"
18
+ }
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.4.0
4
+ version: 6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erich Quintero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-23 00:00:00.000000000 Z
11
+ date: 2021-07-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: finapps_core
@@ -16,100 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.0'
19
+ version: '6.0'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 5.0.15
22
+ version: 6.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - "~>"
28
28
  - !ruby/object:Gem::Version
29
- version: '5.0'
29
+ version: '6.0'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 5.0.15
32
+ version: 6.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: bundler
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '2.0'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 2.0.2
43
- type: :development
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: '2.0'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 2.0.2
53
- - !ruby/object:Gem::Dependency
54
- name: codeclimate-test-reporter
55
- requirement: !ruby/object:Gem::Requirement
56
- requirements:
57
- - - "~>"
58
- - !ruby/object:Gem::Version
59
- version: '1.0'
60
- - - ">="
61
- - !ruby/object:Gem::Version
62
- version: 1.0.9
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: '1.0'
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- version: 1.0.9
73
- - !ruby/object:Gem::Dependency
74
- name: guard
75
- requirement: !ruby/object:Gem::Requirement
76
- requirements:
77
- - - "~>"
78
- - !ruby/object:Gem::Version
79
- version: '2.16'
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 2.16.1
83
- type: :development
84
- prerelease: false
85
- version_requirements: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '2.16'
90
- - - ">="
91
- - !ruby/object:Gem::Version
92
- version: 2.16.1
93
- - !ruby/object:Gem::Dependency
94
- name: guard-rspec
95
- requirement: !ruby/object:Gem::Requirement
96
- requirements:
97
- - - "~>"
98
- - !ruby/object:Gem::Version
99
- version: '4.7'
39
+ version: '2.2'
100
40
  - - ">="
101
41
  - !ruby/object:Gem::Version
102
- version: 4.7.3
42
+ version: 2.2.16
103
43
  type: :development
104
44
  prerelease: false
105
45
  version_requirements: !ruby/object:Gem::Requirement
106
46
  requirements:
107
47
  - - "~>"
108
48
  - !ruby/object:Gem::Version
109
- version: '4.7'
49
+ version: '2.2'
110
50
  - - ">="
111
51
  - !ruby/object:Gem::Version
112
- version: 4.7.3
52
+ version: 2.2.16
113
53
  - !ruby/object:Gem::Dependency
114
54
  name: rake
115
55
  requirement: !ruby/object:Gem::Requirement
@@ -151,7 +91,7 @@ dependencies:
151
91
  - !ruby/object:Gem::Version
152
92
  version: 3.10.0
153
93
  - !ruby/object:Gem::Dependency
154
- name: rubocop
94
+ name: rubocop-performance
155
95
  requirement: !ruby/object:Gem::Requirement
156
96
  requirements:
157
97
  - - "~>"
@@ -159,7 +99,7 @@ dependencies:
159
99
  version: '1.9'
160
100
  - - ">="
161
101
  - !ruby/object:Gem::Version
162
- version: 1.9.1
102
+ version: 1.9.2
163
103
  type: :development
164
104
  prerelease: false
165
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -169,67 +109,81 @@ dependencies:
169
109
  version: '1.9'
170
110
  - - ">="
171
111
  - !ruby/object:Gem::Version
172
- version: 1.9.1
112
+ version: 1.9.2
173
113
  - !ruby/object:Gem::Dependency
174
- name: rubocop-performance
114
+ name: rubocop-rake
175
115
  requirement: !ruby/object:Gem::Requirement
176
116
  requirements:
177
117
  - - "~>"
178
118
  - !ruby/object:Gem::Version
179
- version: '1.9'
119
+ version: '0.5'
180
120
  - - ">="
181
121
  - !ruby/object:Gem::Version
182
- version: 1.9.2
122
+ version: 0.5.1
183
123
  type: :development
184
124
  prerelease: false
185
125
  version_requirements: !ruby/object:Gem::Requirement
186
126
  requirements:
187
127
  - - "~>"
188
128
  - !ruby/object:Gem::Version
189
- version: '1.9'
129
+ version: '0.5'
190
130
  - - ">="
191
131
  - !ruby/object:Gem::Version
192
- version: 1.9.2
132
+ version: 0.5.1
193
133
  - !ruby/object:Gem::Dependency
194
- name: rubocop-rake
134
+ name: rubocop-rspec
195
135
  requirement: !ruby/object:Gem::Requirement
196
136
  requirements:
197
137
  - - "~>"
198
138
  - !ruby/object:Gem::Version
199
- version: '0.5'
139
+ version: '2.4'
200
140
  - - ">="
201
141
  - !ruby/object:Gem::Version
202
- version: 0.5.1
142
+ version: 2.4.0
203
143
  type: :development
204
144
  prerelease: false
205
145
  version_requirements: !ruby/object:Gem::Requirement
206
146
  requirements:
207
147
  - - "~>"
208
148
  - !ruby/object:Gem::Version
209
- version: '0.5'
149
+ version: '2.4'
210
150
  - - ">="
211
151
  - !ruby/object:Gem::Version
212
- version: 0.5.1
152
+ version: 2.4.0
213
153
  - !ruby/object:Gem::Dependency
214
- name: rubocop-rspec
154
+ name: simplecov
215
155
  requirement: !ruby/object:Gem::Requirement
216
156
  requirements:
217
157
  - - "~>"
218
158
  - !ruby/object:Gem::Version
219
- version: '2.2'
159
+ version: '0.21'
220
160
  - - ">="
221
161
  - !ruby/object:Gem::Version
222
- version: 2.2.0
162
+ version: 0.21.2
223
163
  type: :development
224
164
  prerelease: false
225
165
  version_requirements: !ruby/object:Gem::Requirement
226
166
  requirements:
227
167
  - - "~>"
228
168
  - !ruby/object:Gem::Version
229
- version: '2.2'
169
+ version: '0.21'
230
170
  - - ">="
231
171
  - !ruby/object:Gem::Version
232
- version: 2.2.0
172
+ version: 0.21.2
173
+ - !ruby/object:Gem::Dependency
174
+ name: simplecov-console
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '0.9'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '0.9'
233
187
  - !ruby/object:Gem::Dependency
234
188
  name: sinatra
235
189
  requirement: !ruby/object:Gem::Requirement
@@ -256,20 +210,20 @@ dependencies:
256
210
  requirements:
257
211
  - - "~>"
258
212
  - !ruby/object:Gem::Version
259
- version: '3.11'
213
+ version: '3.12'
260
214
  - - ">="
261
215
  - !ruby/object:Gem::Version
262
- version: 3.11.2
216
+ version: 3.12.2
263
217
  type: :development
264
218
  prerelease: false
265
219
  version_requirements: !ruby/object:Gem::Requirement
266
220
  requirements:
267
221
  - - "~>"
268
222
  - !ruby/object:Gem::Version
269
- version: '3.11'
223
+ version: '3.12'
270
224
  - - ">="
271
225
  - !ruby/object:Gem::Version
272
- version: 3.11.2
226
+ version: 3.12.2
273
227
  description: A simple library for communicating with the FinApps REST API.
274
228
  email:
275
229
  - erich@financialapps.com
@@ -307,6 +261,7 @@ files:
307
261
  - lib/finapps/rest/alert_definitions.rb
308
262
  - lib/finapps/rest/alert_occurrences.rb
309
263
  - lib/finapps/rest/client.rb
264
+ - lib/finapps/rest/consumer_login_tokens.rb
310
265
  - lib/finapps/rest/consumers.rb
311
266
  - lib/finapps/rest/consumers_portfolios.rb
312
267
  - lib/finapps/rest/documents_orders.rb
@@ -314,6 +269,7 @@ files:
314
269
  - lib/finapps/rest/documents_upload_types.rb
315
270
  - lib/finapps/rest/documents_uploads.rb
316
271
  - lib/finapps/rest/esign_templates.rb
272
+ - lib/finapps/rest/operator_login_tokens.rb
317
273
  - lib/finapps/rest/operators.rb
318
274
  - lib/finapps/rest/operators_password_resets.rb
319
275
  - lib/finapps/rest/order_assignments.rb
@@ -352,6 +308,7 @@ files:
352
308
  - spec/rest/alert_occurrences_spec.rb
353
309
  - spec/rest/api_request.rb
354
310
  - spec/rest/client_spec.rb
311
+ - spec/rest/consumer_login_tokens_spec.rb
355
312
  - spec/rest/consumers_portfolios_spec.rb
356
313
  - spec/rest/consumers_spec.rb
357
314
  - spec/rest/documents_orders_notifications_spec.rb
@@ -359,6 +316,7 @@ files:
359
316
  - spec/rest/documents_upload_types_spec.rb
360
317
  - spec/rest/documents_uploads_spec.rb
361
318
  - spec/rest/esign_templates_spec.rb
319
+ - spec/rest/operators_login_tokens_spec.rb
362
320
  - spec/rest/operators_password_resets_spec.rb
363
321
  - spec/rest/operators_spec.rb
364
322
  - spec/rest/order_assignments_spec.rb
@@ -397,6 +355,7 @@ files:
397
355
  - spec/support/fixtures/alert_definition.json
398
356
  - spec/support/fixtures/alert_definitions.json
399
357
  - spec/support/fixtures/alert_occurrences.json
358
+ - spec/support/fixtures/consumer_login_token.json
400
359
  - spec/support/fixtures/documents/retrieve_order.json
401
360
  - spec/support/fixtures/documents_order.json
402
361
  - spec/support/fixtures/documents_orders.json
@@ -414,6 +373,7 @@ files:
414
373
  - spec/support/fixtures/operator.json
415
374
  - spec/support/fixtures/operator_forgot_password.json
416
375
  - spec/support/fixtures/operator_list.json
376
+ - spec/support/fixtures/operator_login_token.json
417
377
  - spec/support/fixtures/order.json
418
378
  - spec/support/fixtures/order_refresh.json
419
379
  - spec/support/fixtures/order_report.json
@@ -497,51 +457,53 @@ signing_key:
497
457
  specification_version: 4
498
458
  summary: FinApps REST API ruby client.
499
459
  test_files:
500
- - spec/spec_helpers/client.rb
460
+ - spec/support/documents_uploads_routes.rb
501
461
  - spec/support/screenings_routes.rb
502
462
  - spec/support/fake_api.rb
503
- - spec/support/documents_uploads_routes.rb
504
- - spec/rest/alert_definitions_spec.rb
505
- - spec/rest/documents_orders_notifications_spec.rb
463
+ - spec/utils/query_builder_spec.rb
464
+ - spec/spec_helpers/client.rb
465
+ - spec/spec_helper.rb
506
466
  - spec/rest/order_reports_spec.rb
507
- - spec/rest/consumers_spec.rb
508
- - spec/rest/documents_uploads_spec.rb
509
- - spec/rest/portfolios_available_consumers_spec.rb
510
- - spec/rest/alert_occurrences_spec.rb
511
- - spec/rest/screenings_spec.rb
512
- - spec/rest/portfolios_alerts_spec.rb
513
- - spec/rest/products_spec.rb
467
+ - spec/rest/api_request.rb
468
+ - spec/rest/operators_login_tokens_spec.rb
514
469
  - spec/rest/tenant_app_settings_spec.rb
515
- - spec/rest/plaid/plaid_consumer_institutions_spec.rb
516
- - spec/rest/plaid/plaid_webhooks_spec.rb
517
- - spec/rest/plaid/plaid_institution_logos_spec.rb
518
- - spec/rest/plaid/plaid_account_permissions_spec.rb
519
- - spec/rest/plaid/plaid_accounts_spec.rb
520
- - spec/rest/order_refreshes_spec.rb
521
- - spec/rest/order_assignments_spec.rb
522
- - spec/rest/order_tokens_spec.rb
523
- - spec/rest/documents_orders_spec.rb
524
- - spec/rest/signed_documents_downloads_spec.rb
525
- - spec/rest/portfolios_consumers_spec.rb
526
- - spec/rest/version_spec.rb
527
- - spec/rest/documents_upload_types_spec.rb
528
- - spec/rest/password_resets_spec.rb
529
- - spec/rest/order_statuses_spec.rb
530
- - spec/rest/operators_spec.rb
531
- - spec/rest/portfolio_reports_spec.rb
532
- - spec/rest/order_notifications_spec.rb
470
+ - spec/rest/products_spec.rb
533
471
  - spec/rest/orders_spec.rb
534
472
  - spec/rest/esign_templates_spec.rb
535
473
  - spec/rest/sessions_spec.rb
536
- - spec/rest/api_request.rb
537
- - spec/rest/verix/verix_documents_spec.rb
474
+ - spec/rest/order_assignments_spec.rb
475
+ - spec/rest/documents_orders_spec.rb
476
+ - spec/rest/order_tokens_spec.rb
477
+ - spec/rest/order_notifications_spec.rb
478
+ - spec/rest/order_refreshes_spec.rb
479
+ - spec/rest/plaid/plaid_accounts_spec.rb
480
+ - spec/rest/plaid/plaid_institution_logos_spec.rb
481
+ - spec/rest/plaid/plaid_account_permissions_spec.rb
482
+ - spec/rest/plaid/plaid_consumer_institutions_spec.rb
483
+ - spec/rest/plaid/plaid_webhooks_spec.rb
538
484
  - spec/rest/verix/verix_pdf_documents_spec.rb
539
- - spec/rest/verix/verix_records_spec.rb
540
485
  - spec/rest/verix/verix_metadata_spec.rb
541
- - spec/rest/tenant_settings_spec.rb
542
- - spec/rest/portfolios_spec.rb
543
- - spec/rest/client_spec.rb
486
+ - spec/rest/verix/verix_records_spec.rb
487
+ - spec/rest/verix/verix_documents_spec.rb
488
+ - spec/rest/portfolios_alerts_spec.rb
544
489
  - spec/rest/operators_password_resets_spec.rb
490
+ - spec/rest/portfolio_reports_spec.rb
491
+ - spec/rest/alert_definitions_spec.rb
492
+ - spec/rest/consumers_spec.rb
493
+ - spec/rest/tenant_settings_spec.rb
494
+ - spec/rest/signed_documents_downloads_spec.rb
545
495
  - spec/rest/consumers_portfolios_spec.rb
546
- - spec/spec_helper.rb
547
- - spec/utils/query_builder_spec.rb
496
+ - spec/rest/documents_upload_types_spec.rb
497
+ - spec/rest/documents_orders_notifications_spec.rb
498
+ - spec/rest/version_spec.rb
499
+ - spec/rest/documents_uploads_spec.rb
500
+ - spec/rest/client_spec.rb
501
+ - spec/rest/portfolios_consumers_spec.rb
502
+ - spec/rest/portfolios_spec.rb
503
+ - spec/rest/order_statuses_spec.rb
504
+ - spec/rest/alert_occurrences_spec.rb
505
+ - spec/rest/screenings_spec.rb
506
+ - spec/rest/operators_spec.rb
507
+ - spec/rest/password_resets_spec.rb
508
+ - spec/rest/portfolios_available_consumers_spec.rb
509
+ - spec/rest/consumer_login_tokens_spec.rb