finapps 6.4.3 → 6.7.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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.github/release-drafter.yml +1 -1
  3. data/.github/workflows/ci.yaml +1 -1
  4. data/.github/workflows/release.yml +1 -1
  5. data/.github/workflows/verify-pr-labeled.yml +1 -1
  6. data/.rubocop.yml +3 -0
  7. data/finapps.gemspec +1 -1
  8. data/lib/finapps/rest/actors.rb +13 -0
  9. data/lib/finapps/rest/client.rb +3 -1
  10. data/lib/finapps/rest/operators.rb +23 -12
  11. data/lib/finapps/rest/screening_metadatas.rb +32 -0
  12. data/lib/finapps/rest/screenings.rb +1 -1
  13. data/lib/finapps/version.rb +1 -1
  14. data/lib/finapps.rb +2 -0
  15. data/spec/rest/actors_spec.rb +39 -0
  16. data/spec/rest/documents_orders_spec.rb +1 -1
  17. data/spec/rest/documents_upload_types_spec.rb +1 -1
  18. data/spec/rest/documents_uploads_spec.rb +1 -1
  19. data/spec/rest/esign_templates_spec.rb +1 -1
  20. data/spec/rest/operators_spec.rb +164 -170
  21. data/spec/rest/plaid/plaid_account_permissions_spec.rb +1 -1
  22. data/spec/rest/plaid/plaid_accounts_spec.rb +1 -1
  23. data/spec/rest/plaid/plaid_consumer_institutions_spec.rb +1 -1
  24. data/spec/rest/plaid/plaid_institution_logos_spec.rb +1 -1
  25. data/spec/rest/plaid/plaid_webhooks_spec.rb +1 -1
  26. data/spec/rest/screening_metadatas_spec.rb +131 -0
  27. data/spec/rest/screenings_spec.rb +8 -12
  28. data/spec/rest/signed_documents_downloads_spec.rb +1 -1
  29. data/spec/rest/verix/verix_documents_spec.rb +1 -1
  30. data/spec/rest/verix/verix_metadata_spec.rb +1 -1
  31. data/spec/rest/verix/verix_pdf_documents_spec.rb +1 -1
  32. data/spec/rest/verix/verix_records_spec.rb +1 -1
  33. data/spec/{rest → spec_helpers}/api_request.rb +11 -8
  34. data/spec/support/fake_api.rb +8 -7
  35. data/spec/support/fixtures/actors/details.json +19 -0
  36. data/spec/support/fixtures/screening_metadatas/not_found.json +3 -0
  37. data/spec/support/fixtures/screening_metadatas/show.json +4 -0
  38. data/spec/support/routes/actors.rb +14 -0
  39. data/spec/support/routes/screening_metadatas.rb +45 -0
  40. metadata +57 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c47f3bb9f6e6702acf5a530b1e9c243a80271bc66e4eecec1fa6c1a088e99e0
4
- data.tar.gz: fe0770b6dbe32afe9997a8d631ff5dae85c1963e0b6b26ac52bfec4cf2794159
3
+ metadata.gz: 735176ac6ed0687571813a8c336c16b69af0c5667c6596700ff9e2a9f68f360a
4
+ data.tar.gz: c6d8d16e7eefd52b3394211874bb3e525c012b63729465d0fdbad4ff06d23b53
5
5
  SHA512:
6
- metadata.gz: eb6e96b56b2e64f03eef52e9e5f4573eca2c9940421caa3d15dc42b3fd400781a40bfd44fe592b7886ebf4cd0de3f9854e080a60c85454f0228919524ed513a9
7
- data.tar.gz: 3762f06a6f148e7dd040c9005e98614f9bcdd54f497a1b6f1e7a1d148bc5e528852592e3ff4ecaec2df5a8419cc95a53f299e02c292d5d1285e5e28b61575060
6
+ metadata.gz: 4839196dbed34dce8f802b4e4b95b45b0ce0a8d1e43993290a3783711c6a43394e1ad1680084590ec0ecc3baaa5ae3f4c3c5f52e69b06d72449ef2fd35698e70
7
+ data.tar.gz: 60afeee0003d524c52a7e966e49e8f6972e5308c7d92c34451149ef25a3041078551eb391a72e38b6723bbcad6e2a8ae284f2b659a5814d6a22fbdb13bc491d8
@@ -39,7 +39,7 @@ exclude-labels:
39
39
  - invalid
40
40
 
41
41
  template: |
42
- ## [$RESOLVED_VERSION](https://github.com/finapps/ruby-client/compare/$PREVIOUS_TAG...$RESOLVED_VERSION)
42
+ ## [$RESOLVED_VERSION](https://github.com/finapps/ruby-client/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION)
43
43
  $CHANGES
44
44
 
45
45
  replacers:
@@ -20,7 +20,7 @@ jobs:
20
20
  runs-on: ${{ matrix.os }}
21
21
  steps:
22
22
  - name: Checkout source code
23
- uses: actions/checkout@v2.3.4
23
+ uses: actions/checkout@v2.4.0
24
24
 
25
25
  - name: Install required ruby version
26
26
  uses: ruby/setup-ruby@v1
@@ -11,7 +11,7 @@ jobs:
11
11
 
12
12
  steps:
13
13
  - name: Checkout source code
14
- uses: actions/checkout@v2.3.4
14
+ uses: actions/checkout@v2.4.0
15
15
  with:
16
16
  persist-credentials: false
17
17
  fetch-depth: 0 # otherwise, you will fail to push refs to dest repo
@@ -7,7 +7,7 @@ jobs:
7
7
  label:
8
8
  runs-on: ubuntu-latest
9
9
  steps:
10
- - uses: mheap/github-action-required-labels@v1.1.2
10
+ - uses: mheap/github-action-required-labels@v1.2
11
11
  with:
12
12
  mode: minimum
13
13
  count: 1
data/.rubocop.yml CHANGED
@@ -12,6 +12,9 @@ AllCops:
12
12
  CacheRootDirectory: tmp
13
13
  NewCops: enable
14
14
 
15
+ Gemspec/RequireMFA:
16
+ Enabled: false
17
+
15
18
  Layout/SpaceAroundMethodCallOperator:
16
19
  Enabled: true
17
20
  Layout/EmptyLinesAroundAttributeAccessor:
data/finapps.gemspec CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency 'rspec', '~> 3.10', '>= 3.10.0'
28
28
  spec.add_development_dependency 'rubocop-performance', '~> 1.11', '>= 1.11.5'
29
29
  spec.add_development_dependency 'rubocop-rake', '~> 0.5', '>= 0.5.1'
30
- spec.add_development_dependency 'rubocop-rspec', '~> 2.4', '>= 2.4.0'
30
+ spec.add_development_dependency 'rubocop-rspec', '~> 2.5', '>= 2.5.0'
31
31
  spec.add_development_dependency 'simplecov', '~> 0.21', '>= 0.21.2'
32
32
  spec.add_development_dependency 'simplecov-console', '~> 0.9'
33
33
  spec.add_development_dependency 'sinatra', '~> 2.1', '>= 2.1.0'
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinApps
4
+ module REST
5
+ class Actors < FinAppsCore::REST::Resources
6
+ END_POINT = 'actor/details'
7
+
8
+ def show
9
+ super nil, END_POINT
10
+ end
11
+ end
12
+ end
13
+ end
@@ -7,6 +7,7 @@ module FinApps
7
7
  module REST
8
8
  class Client < FinAppsCore::REST::BaseClient # :nodoc:
9
9
  RESOURCES = %i[
10
+ actors
10
11
  alert_definitions
11
12
  alert_occurrences
12
13
  consumers
@@ -41,6 +42,7 @@ module FinApps
41
42
  portfolio_reports
42
43
  products
43
44
  screenings
45
+ screening_metadatas
44
46
  sessions
45
47
  signed_documents_downloads
46
48
  tenant_settings
@@ -74,7 +76,7 @@ module FinApps
74
76
  end
75
77
 
76
78
  def set_variable(class_name, variable)
77
- klass = Object.const_get('FinApps').const_get('REST').const_get class_name
79
+ klass = Object.const_get(:FinApps).const_get(:REST).const_get class_name
78
80
  instance_variable_set(variable, klass.new(self))
79
81
  end
80
82
 
@@ -57,22 +57,33 @@ module FinApps
57
57
  end
58
58
 
59
59
  def build_filter(params)
60
- filter = {}
61
- filter.merge!(search_query(params[:searchTerm])) if params[:searchTerm]
62
- filter.merge!(role_query(params[:role])) if params[:role]
63
- filter
60
+ term_filter(params[:searchTerm]).merge(role_filter(params[:role]))
64
61
  end
65
62
 
66
- def search_query(term)
67
- {last_name: term}
63
+ def term_filter(term)
64
+ return {} unless term
65
+
66
+ {'$or': term_array(term)}
67
+ end
68
+
69
+ def term_array(term)
70
+ [
71
+ {email: term},
72
+ {last_name: term}
73
+ ]
74
+ end
75
+
76
+ def role_filter(role)
77
+ return {} unless role
78
+
79
+ roles = to_integers_array(role)
80
+ return {} if roles.empty?
81
+
82
+ {role: {'$in': roles}}
68
83
  end
69
84
 
70
- def role_query(role)
71
- if role.is_a?(Array)
72
- {role: {'$in': role.map(&:to_i)}}
73
- else
74
- {role: role.to_i}
75
- end
85
+ def to_integers_array(role)
86
+ (role.respond_to?(:map) ? role : [role]).map {|i| Integer(i) }.compact
76
87
  end
77
88
  end
78
89
  end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ module FinApps
4
+ module REST
5
+ class ScreeningMetadatas < FinAppsCore::REST::Resources # :nodoc:
6
+ def show(id, key)
7
+ not_blank(id, :session_id)
8
+ not_blank(key, :key)
9
+
10
+ path = "screenings/#{ERB::Util.url_encode(id)}/meta/#{ERB::Util.url_encode(key)}"
11
+ super(nil, path)
12
+ end
13
+
14
+ def create(id, key, value)
15
+ not_blank(id, :session_id)
16
+ not_blank(key, :key)
17
+ not_blank(value, :value)
18
+
19
+ path = "screenings/#{ERB::Util.url_encode(id)}/meta"
20
+ super({key => value}, path)
21
+ end
22
+
23
+ def destroy(id, key)
24
+ not_blank(id, :session_id)
25
+ not_blank(key, :key)
26
+
27
+ path = "screenings/#{ERB::Util.url_encode(id)}/meta/#{ERB::Util.url_encode(key)}"
28
+ super(nil, path)
29
+ end
30
+ end
31
+ end
32
+ end
@@ -110,7 +110,7 @@ module FinApps
110
110
  def progress_filter(progress)
111
111
  return {} unless progress
112
112
 
113
- {progress: progress.to_i}
113
+ {progress: Integer(progress)}
114
114
  end
115
115
 
116
116
  def space?(string)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FinApps
4
- VERSION = '6.4.3'
4
+ VERSION = '6.7.0'
5
5
  end
data/lib/finapps.rb CHANGED
@@ -4,6 +4,7 @@ require 'faraday'
4
4
  require 'faraday_middleware'
5
5
 
6
6
  require 'finapps_core'
7
+ require 'finapps/rest/actors'
7
8
  require 'finapps/rest/version'
8
9
  require 'finapps/rest/consumers'
9
10
  require 'finapps/rest/consumer_login_tokens'
@@ -39,6 +40,7 @@ require 'finapps/rest/documents_upload_types'
39
40
  require 'finapps/rest/signed_documents_downloads'
40
41
  require 'finapps/rest/documents_orders_notifications'
41
42
  require 'finapps/rest/screenings'
43
+ require 'finapps/rest/screening_metadatas'
42
44
 
43
45
  require 'finapps/rest/plaid/plaid_resources'
44
46
  require 'finapps/rest/plaid/plaid_webhooks'
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helpers/client'
4
+ require 'spec_helpers/api_request'
5
+
6
+ RSpec.describe FinApps::REST::Actors do
7
+ include SpecHelpers::Client
8
+
9
+ let(:results) { subject[RESULTS] }
10
+ let(:error_messages) { subject[ERROR_MESSAGES] }
11
+
12
+ describe '#show' do
13
+ subject(:show) { described_class.new(client).show }
14
+
15
+ context 'when authorization is not valid' do
16
+ before { stub_unauthorized_request }
17
+
18
+ it { expect { show }.to raise_error(FinAppsCore::ApiUnauthenticatedError) }
19
+ end
20
+
21
+ context 'when authorization is valid' do
22
+ it_behaves_like 'an API request'
23
+ it_behaves_like 'a successful request'
24
+
25
+ it('returns a valid actor') { expect(results).to be_a(Hash) }
26
+ end
27
+ end
28
+
29
+ def stub_unauthorized_request
30
+ stub_request(:get, %r{/actor/details}).to_return(
31
+ status: 401,
32
+ body: {
33
+ error_messages: ['Unauthorized'],
34
+ results: nil
35
+ }.to_json,
36
+ headers: {}
37
+ )
38
+ end
39
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helpers/client'
4
- require 'rest/api_request'
4
+ require 'spec_helpers/api_request'
5
5
 
6
6
  RSpec.describe FinApps::REST::DocumentsOrders do
7
7
  include SpecHelpers::Client
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helpers/client'
4
- require 'rest/api_request'
4
+ require 'spec_helpers/api_request'
5
5
 
6
6
  RSpec.describe FinApps::REST::DocumentsUploadTypes do
7
7
  include SpecHelpers::Client
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helpers/client'
4
- require 'rest/api_request'
4
+ require 'spec_helpers/api_request'
5
5
 
6
6
  RSpec.describe FinApps::REST::DocumentsUploads do
7
7
  include SpecHelpers::Client
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'spec_helpers/client'
4
- require 'rest/api_request'
4
+ require 'spec_helpers/api_request'
5
5
 
6
6
  RSpec.describe FinApps::REST::EsignTemplates do
7
7
  include SpecHelpers::Client