finapps 5.4.0 → 6.2.0

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