finapps 6.4.3 → 6.7.0

Sign up to get free protection for your applications and to get access to all the features.
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