yoti_sandbox 1.2.1 → 1.3.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: b28e95307ea6fccc695c859deaf4511bd06e56db00da5ee3064663e45f3548a3
4
- data.tar.gz: f99002f1962e15be43e1eff62b594af8fdfb45beb43148df8bf648758ba6c299
3
+ metadata.gz: 3dca617f8f85c6d5f3f8cab50bbbaed9d25d02400fe57d92fa79e96741910460
4
+ data.tar.gz: 5ff037daed4c3c10499c2fdb707359ee12fb8f498806f207842009a9012ec138
5
5
  SHA512:
6
- metadata.gz: 5b459b8d299a31fe540ec5cdc38264ac1d11dafa0313cce0c82befd9816f76b184f0a2db7c3733a1435e889719441975e28d90840e5bdeceac6ea4663403845e
7
- data.tar.gz: bab62a807f2afe3693c09536438e1203c0a586ee924f3de55137520eb9bd6c802fe77194fe441bc1abb3b17179cc03c39084a07fa8204de2519202f9b1870eae
6
+ metadata.gz: cd19939c2a54cb656244b367c75ab362cd931aaf533f324c3b5c309c8ed61a5fc44d310f49f1295ccea98f70aa392e4276ffa4f3edfc2776603d61324168ee59
7
+ data.tar.gz: 2702371dbc5dd6caf8ddfce5c7eaf06d110f217d314d2c402ece5d5d87b63430eb1a52ffb98427e47ead8eadd4984ae3b5fa04ede3845e3daf10fefaa6134362
@@ -9,6 +9,7 @@ require_relative 'doc_scan/request/document_filter'
9
9
  require_relative 'doc_scan/request/check/check'
10
10
  require_relative 'doc_scan/request/check/document_check'
11
11
  require_relative 'doc_scan/request/check/document_authenticity_check'
12
+ require_relative 'doc_scan/request/check/id_document_comparison_check'
12
13
  require_relative 'doc_scan/request/check/document_face_match_check'
13
14
  require_relative 'doc_scan/request/check/document_text_data_check'
14
15
  require_relative 'doc_scan/request/check/liveness_check'
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yoti
4
+ module Sandbox
5
+ module DocScan
6
+ module Request
7
+ class IdDocumentComparisonCheck < Check
8
+ #
9
+ # @param [CheckResult] result
10
+ # @param [DocumentFilter] secondary_document_filter
11
+ #
12
+ def initialize(result, secondary_document_filter)
13
+ super(result)
14
+
15
+ Validation.assert_is_a(DocumentFilter, secondary_document_filter, 'secondary_document_filter', true)
16
+ @secondary_document_filter = secondary_document_filter
17
+ end
18
+
19
+ def as_json(*_args)
20
+ json = super
21
+ json[:secondary_document_filter] = @secondary_document_filter.as_json unless @secondary_document_filter.nil?
22
+ json
23
+ end
24
+
25
+ #
26
+ # @return [IdDocumentComparisonCheckBuilder]
27
+ #
28
+ def self.builder
29
+ IdDocumentComparisonCheckBuilder.new
30
+ end
31
+ end
32
+
33
+ class IdDocumentComparisonCheckBuilder < CheckBuilder
34
+ #
35
+ # @param [DocumentFilter] secondary_document_filter
36
+ #
37
+ # @return [self]
38
+ #
39
+ def with_secondary_document_filter(secondary_document_filter)
40
+ @secondary_document_filter = secondary_document_filter
41
+ self
42
+ end
43
+
44
+ #
45
+ # @return [IdDocumentComparisonCheck]
46
+ #
47
+ def build
48
+ report = CheckReport.new(@recommendation, @breakdowns)
49
+ result = CheckResult.new(report)
50
+ IdDocumentComparisonCheck.new(result, @secondary_document_filter)
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
@@ -11,13 +11,15 @@ module Yoti
11
11
  # @param [Array<LivenessCheck>] liveness_checks
12
12
  # @param [Array<DocumentFaceMatchCheck>] document_face_match_checks
13
13
  # @param [Integer] async_report_delay
14
+ # @param [Array<IdDocumentComparisonCheck>] id_document_comparison_checks
14
15
  #
15
16
  def initialize(
16
17
  document_text_data_checks,
17
18
  document_authenticity_checks,
18
19
  liveness_checks,
19
20
  document_face_match_checks,
20
- async_report_delay
21
+ async_report_delay,
22
+ id_document_comparison_checks = nil
21
23
  )
22
24
  Validation.assert_is_a(Array, document_text_data_checks, 'document_text_data_checks')
23
25
  @document_text_data_checks = document_text_data_checks
@@ -33,6 +35,9 @@ module Yoti
33
35
 
34
36
  Validation.assert_is_a(Integer, async_report_delay, 'async_report_delay', true)
35
37
  @async_report_delay = async_report_delay
38
+
39
+ Validation.assert_is_a(Array, id_document_comparison_checks, 'id_document_comparison_checks', true)
40
+ @id_document_comparison_checks = id_document_comparison_checks
36
41
  end
37
42
 
38
43
  def self.builder
@@ -45,12 +50,13 @@ module Yoti
45
50
 
46
51
  def as_json(*_args)
47
52
  {
48
- Yoti::DocScan::Constants::ID_DOCUMENT_TEXT_DATA_CHECK => @document_text_data_checks,
49
- Yoti::DocScan::Constants::ID_DOCUMENT_AUTHENTICITY => @document_authenticity_checks,
50
- Yoti::DocScan::Constants::ID_DOCUMENT_FACE_MATCH => @document_face_match_checks,
51
- Yoti::DocScan::Constants::LIVENESS => @liveness_checks,
52
- :async_report_delay => @async_report_delay
53
- }
53
+ ID_DOCUMENT_TEXT_DATA_CHECK: @document_text_data_checks,
54
+ ID_DOCUMENT_AUTHENTICITY: @document_authenticity_checks,
55
+ ID_DOCUMENT_FACE_MATCH: @document_face_match_checks,
56
+ LIVENESS: @liveness_checks,
57
+ ID_DOCUMENT_COMPARISON: @id_document_comparison_checks,
58
+ async_report_delay: @async_report_delay
59
+ }.compact
54
60
  end
55
61
  end
56
62
 
@@ -60,6 +66,7 @@ module Yoti
60
66
  @document_text_data_checks = []
61
67
  @document_authenticity_checks = []
62
68
  @document_face_match_checks = []
69
+ @id_document_comparison_checks = []
63
70
  end
64
71
 
65
72
  #
@@ -117,6 +124,17 @@ module Yoti
117
124
  self
118
125
  end
119
126
 
127
+ #
128
+ # @param [IdDocumentComparisonCheck] id_document_comparison_check
129
+ #
130
+ # @return [self]
131
+ #
132
+ def with_id_document_comparison_check(id_document_comparison_check)
133
+ Validation.assert_is_a(IdDocumentComparisonCheck, id_document_comparison_check, 'id_document_comparison_check')
134
+ @id_document_comparison_checks << id_document_comparison_check
135
+ self
136
+ end
137
+
120
138
  #
121
139
  # @return [CheckReports]
122
140
  #
@@ -126,7 +144,8 @@ module Yoti
126
144
  @document_authenticity_checks,
127
145
  @liveness_checks,
128
146
  @document_face_match_checks,
129
- @async_report_delay
147
+ @async_report_delay,
148
+ @id_document_comparison_checks
130
149
  )
131
150
  end
132
151
  end
@@ -3,7 +3,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = 'yoti_sandbox'
6
- spec.version = '1.2.1'
6
+ spec.version = '1.3.0'
7
7
  spec.authors = ['Yoti']
8
8
  spec.email = ['websdk@yoti.com']
9
9
 
@@ -16,7 +16,20 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = 'https://github.com/getyoti/yoti-ruby-sdk-sandbox'
17
17
  spec.license = 'MIT'
18
18
 
19
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|examples)/|^sonar-project.properties$|^.dependabot/config.yml$|^.travis.yml$}) }
19
+ exclude_patterns = [
20
+ '^(test|spec|features|examples|docs|.github)/',
21
+ '^.gitignore$',
22
+ '^.pre-commit-config.yaml$',
23
+ '^sonar-project.properties$',
24
+ '^.dependabot/config.yml$',
25
+ '^.travis.yml$',
26
+ '^CONTRIBUTING.md$',
27
+ '^Guardfile$',
28
+ '^Rakefile$',
29
+ '^yardstick.yml$',
30
+ '^rubocop.yml$'
31
+ ]
32
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(/#{exclude_patterns.join('|')}/) }
20
33
  spec.require_paths = ['lib']
21
34
 
22
35
  spec.required_ruby_version = '>= 2.4'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yoti_sandbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-13 00:00:00.000000000 Z
11
+ date: 2020-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: yoti
@@ -131,15 +131,9 @@ executables: []
131
131
  extensions: []
132
132
  extra_rdoc_files: []
133
133
  files:
134
- - ".github/ISSUE_TEMPLATE.md"
135
- - ".github/dependabot.yml"
136
- - ".gitignore"
137
- - CONTRIBUTING.md
138
134
  - Gemfile
139
- - Guardfile
140
135
  - LICENSE
141
136
  - README.md
142
- - Rakefile
143
137
  - lib/yoti_sandbox.rb
144
138
  - lib/yoti_sandbox/doc_scan.rb
145
139
  - lib/yoti_sandbox/doc_scan/client.rb
@@ -149,6 +143,7 @@ files:
149
143
  - lib/yoti_sandbox/doc_scan/request/check/document_check.rb
150
144
  - lib/yoti_sandbox/doc_scan/request/check/document_face_match_check.rb
151
145
  - lib/yoti_sandbox/doc_scan/request/check/document_text_data_check.rb
146
+ - lib/yoti_sandbox/doc_scan/request/check/id_document_comparison_check.rb
152
147
  - lib/yoti_sandbox/doc_scan/request/check/liveness_check.rb
153
148
  - lib/yoti_sandbox/doc_scan/request/check/report/breakdown.rb
154
149
  - lib/yoti_sandbox/doc_scan/request/check/report/detail.rb
@@ -168,8 +163,6 @@ files:
168
163
  - lib/yoti_sandbox/profile/extra_data.rb
169
164
  - lib/yoti_sandbox/profile/third_party.rb
170
165
  - lib/yoti_sandbox/profile/token_request.rb
171
- - rubocop.yml
172
- - yardstick.yml
173
166
  - yoti_sandbox.gemspec
174
167
  homepage: https://github.com/getyoti/yoti-ruby-sdk-sandbox
175
168
  licenses:
@@ -1,17 +0,0 @@
1
- ---
2
- name: Custom issue template
3
- about: " There's a better way to get help!"
4
- title: ''
5
- labels: ''
6
- assignees: ''
7
-
8
- ---
9
-
10
- #
11
- # Wait ✋
12
- #
13
- # There's a better way to get help!
14
- #
15
- # Send your questions or issues to sdksupport@yoti.com
16
- #
17
- #
@@ -1,13 +0,0 @@
1
- version: 2
2
- updates:
3
- - package-ecosystem: bundler
4
- directory: "/"
5
- schedule:
6
- interval: daily
7
- open-pull-requests-limit: 3
8
- target-branch: development
9
- reviewers:
10
- - echarrod
11
- - davidgrayston
12
- assignees:
13
- - davidgrayston
data/.gitignore DELETED
@@ -1,56 +0,0 @@
1
- *.gem
2
- *.rbc
3
- /.config
4
- /coverage/
5
- /InstalledFiles
6
- /pkg/
7
- /spec/reports/
8
- /spec/examples.txt
9
- /test/tmp/
10
- /test/version_tmp/
11
- /tmp/
12
-
13
- # Used by dotenv library to load environment variables.
14
- .env
15
-
16
- # Ignore Byebug command history file.
17
- .byebug_history
18
-
19
- ## Specific to RubyMotion:
20
- .dat*
21
- .repl_history
22
- build/
23
- *.bridgesupport
24
- build-iPhoneOS/
25
- build-iPhoneSimulator/
26
-
27
- ## Specific to RubyMotion (use of CocoaPods):
28
- #
29
- # We recommend against adding the Pods directory to your .gitignore. However
30
- # you should judge for yourself, the pros and cons are mentioned at:
31
- # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
32
- #
33
- # vendor/Pods/
34
-
35
- ## Documentation cache and generated files:
36
- /.yardoc/
37
- /_yardoc/
38
- /doc/
39
- /rdoc/
40
-
41
- ## Environment normalization:
42
- /.bundle/
43
- /vendor/bundle
44
- /lib/bundler/man/
45
-
46
- # for a library or gem, you might want to ignore these files since the code is
47
- # intended to run in multiple environments; otherwise, check them in:
48
- Gemfile.lock
49
- .ruby-version
50
- .ruby-gemset
51
-
52
- # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
53
- .rvmrc
54
-
55
- # Used by RuboCop. Remote config files pulled in from inherit_from directive.
56
- # .rubocop-https?--*
@@ -1,30 +0,0 @@
1
- # Contributing
2
-
3
- After checking out the repo, run `bundle install` to install dependencies. Then, run `bundle exec rake spec` to run the tests. To install this gem onto your local machine, run `bundle exec rake install`.
4
-
5
- You can use [Guard][] to automatically run the tests every time a file in the `lib` or `spec` folder changes.
6
-
7
- Run Guard through Bundler with:
8
-
9
- ```shell
10
- bundle exec guard
11
- ```
12
-
13
- [Guard]: https://github.com/guard/guard
14
-
15
- ## Code coverage
16
-
17
- The 100% code coverage requirement must be met before submitting new code.
18
- This can be checked by opening the generated [SimpleCov][] files:
19
-
20
- ```shell
21
- open coverage/index.html
22
- ```
23
-
24
- ## Style guide
25
-
26
- The Ruby style guide is configured in the [rubocop.yml](rubocop.yml) file and can be checked by running:
27
-
28
- ```shell
29
- bundle exec rake rubocop
30
- ```
data/Guardfile DELETED
@@ -1,11 +0,0 @@
1
- guard :rspec, cmd: 'bundle exec rspec -c -f doc' do
2
- # watch /lib/ files
3
- watch(%r{^lib/(.+).rb$}) do |m|
4
- "spec/#{m[1]}_spec.rb"
5
- end
6
-
7
- # watch /spec/ files
8
- watch(%r{^spec/(.+).rb$}) do |m|
9
- "spec/#{m[1]}.rb"
10
- end
11
- end
data/Rakefile DELETED
@@ -1,41 +0,0 @@
1
- require 'bundler/gem_tasks'
2
- require 'rspec/core/rake_task'
3
- require 'yaml'
4
-
5
- ################################
6
- # Tests #
7
- ################################
8
-
9
- RSpec::Core::RakeTask.new
10
- task test: :spec
11
-
12
- ################################
13
- # Rubocop #
14
- ################################
15
-
16
- require 'rubocop/rake_task'
17
- RuboCop::RakeTask.new(:rubocop) do |t|
18
- t.options = ['--config', 'rubocop.yml']
19
- end
20
-
21
- ################################
22
- # Documentation #
23
- ################################
24
-
25
- require 'yard'
26
- YARD::Rake::YardocTask.new do |t|
27
- t.stats_options = ['--list-undoc']
28
- end
29
-
30
- yardstick_options = YAML.load_file('yardstick.yml')
31
-
32
- require 'yardstick/rake/measurement'
33
- Yardstick::Rake::Measurement.new(:measurement, yardstick_options) do |measurement|
34
- measurement.output = 'measurement/report.txt'
35
- end
36
-
37
- ################################
38
- # Defaults #
39
- ################################
40
-
41
- task default: %i[spec rubocop]
@@ -1,44 +0,0 @@
1
- AllCops:
2
- DisplayCopNames: true
3
- DisplayStyleGuide: true
4
- TargetRubyVersion: 2.4
5
-
6
- Metrics/AbcSize:
7
- Enabled: false
8
- Max: 23
9
-
10
- Metrics/BlockLength:
11
- Exclude:
12
- - spec/**/**/*.rb
13
- - examples/**/*.rb
14
-
15
- Metrics/ClassLength:
16
- Enabled: false
17
- Max: 115
18
-
19
- Metrics/ModuleLength:
20
- Exclude:
21
- - examples/doc_scan/**/*.rb
22
-
23
- Metrics/CyclomaticComplexity:
24
- Max: 9
25
-
26
- Metrics/MethodLength:
27
- Enabled: false
28
- CountComments: false
29
- Max: 19
30
-
31
- Style/Documentation:
32
- Enabled: false
33
-
34
- Style/FrozenStringLiteralComment:
35
- Enabled: false
36
-
37
- Style/NumericLiterals:
38
- Enabled: false
39
-
40
- Style/MutableConstant:
41
- Enabled: false
42
-
43
- Layout/LineLength:
44
- Enabled: false
@@ -1,9 +0,0 @@
1
- rules:
2
- ApiTag::Presence:
3
- enabled: false
4
- ApiTag::Inclusion:
5
- enabled: false
6
- ApiTag::PrivateMethod:
7
- enabled: false
8
- ExampleTag:
9
- enabled: false