yoti 1.8.0 → 1.9.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: e34d2dbc6a002d6ea68375d1e0d0ba861587db16a7502e597aaacac5f97799f4
4
- data.tar.gz: 81e54ccb7d6b3270efea24d7e1a632d4719f604eccd7da49f101ff6e565ca99d
3
+ metadata.gz: 62813310617665f67200974ba737f52d7c9bd2c1b139657b5ec672253ab3d133
4
+ data.tar.gz: 474d9dff07562499e19ec35d261dadbc056dbe7818bf35620ba7247ea7169569
5
5
  SHA512:
6
- metadata.gz: 4433d2b8ac27da64991fe3f1f0d2271feb3c1ad41f43b50c49d9ec0615a75714042e63ef343fb93f4f8ae98860f93a4534f2128eafe1af7813ceba6d88458620
7
- data.tar.gz: 0a2338a401a97000ba2a4999347c3e4471bfa896565653d87ac2b548c11b8eae73c86a1241cad5293ef3e19922e97caa7c67658df603c7704ced9965a806abc7
6
+ metadata.gz: 5c9c3ddc325973e5da3598c289428f01ccb7964ef7faed15b56faa7d9067b5f34f20a2b3336e1b357fb388898810595ccdc1bc2b2665213c44513b9ef493cf90
7
+ data.tar.gz: eb86020139c4e892f289f70a5eb9dfa15b8f2daee955d67ff16a3d93e6eab57e2847eac54f57545b9430b6c6373185fdf485c6fe726831d63b24c5e982b4931c
data/README.md CHANGED
@@ -129,7 +129,6 @@ heroku config:add YOTI_KEY ="$(cat your-access-security.pem)"
129
129
  The Yoti SDK can be used for the following products, follow the links for more information about each:
130
130
  1) [Yoti app integration](/docs/PROFILE.md) - Connect with already-verified customers.
131
131
  1) [Yoti Doc Scan](/docs/DOCSCAN.md) - Identity verification embedded in your website or app.
132
- 1) [Yoti AML](/docs/AML.md) - Anti-Money Laundering check service to allow a deeper KYC process, preventing fraud
133
132
 
134
133
  ## Support
135
134
 
@@ -56,6 +56,7 @@ require_relative 'yoti/doc_scan/errors'
56
56
  require_relative 'yoti/doc_scan/session/create/create_session_result'
57
57
  require_relative 'yoti/doc_scan/session/create/requested_check'
58
58
  require_relative 'yoti/doc_scan/session/create/requested_document_authenticity_check'
59
+ require_relative 'yoti/doc_scan/session/create/requested_id_document_comparison_check'
59
60
  require_relative 'yoti/doc_scan/session/create/requested_face_match_check'
60
61
  require_relative 'yoti/doc_scan/session/create/requested_liveness_check'
61
62
  require_relative 'yoti/doc_scan/session/create/requested_task'
@@ -72,6 +73,7 @@ require_relative 'yoti/doc_scan/session/create/session_specification'
72
73
  require_relative 'yoti/doc_scan/session/retrieve/check_response'
73
74
  require_relative 'yoti/doc_scan/session/retrieve/resource_response'
74
75
  require_relative 'yoti/doc_scan/session/retrieve/authenticity_check_response'
76
+ require_relative 'yoti/doc_scan/session/retrieve/id_document_comparison_check_response'
75
77
  require_relative 'yoti/doc_scan/session/retrieve/breakdown_response'
76
78
  require_relative 'yoti/doc_scan/session/retrieve/details_response'
77
79
  require_relative 'yoti/doc_scan/session/retrieve/document_fields_response'
@@ -4,6 +4,7 @@ module Yoti
4
4
  module DocScan
5
5
  class Constants
6
6
  ID_DOCUMENT_AUTHENTICITY = 'ID_DOCUMENT_AUTHENTICITY'
7
+ ID_DOCUMENT_COMPARISON = 'ID_DOCUMENT_COMPARISON'
7
8
  ID_DOCUMENT_TEXT_DATA_CHECK = 'ID_DOCUMENT_TEXT_DATA_CHECK'
8
9
  ID_DOCUMENT_FACE_MATCH = 'ID_DOCUMENT_FACE_MATCH'
9
10
  LIVENESS = 'LIVENESS'
@@ -30,8 +30,18 @@ module Yoti
30
30
  # The configuration applied when creating a {RequestedDocumentAuthenticityCheck}
31
31
  #
32
32
  class RequestedDocumentAuthenticityCheckConfig
33
+ #
34
+ # @param [String] manual_check
35
+ #
36
+ def initialize(manual_check)
37
+ Validation.assert_is_a(String, manual_check, 'manual_check', true)
38
+ @manual_check = manual_check
39
+ end
40
+
33
41
  def as_json(*_args)
34
- {}
42
+ {
43
+ manual_check: @manual_check
44
+ }.compact
35
45
  end
36
46
  end
37
47
 
@@ -39,11 +49,43 @@ module Yoti
39
49
  # Builder to assist the creation of {RequestedDocumentAuthenticityCheck}
40
50
  #
41
51
  class RequestedDocumentAuthenticityCheckBuilder
52
+ #
53
+ # Requires that a manual follow-up check is always performed
54
+ #
55
+ # @return [self]
56
+ #
57
+ def with_manual_check_always
58
+ @manual_check = Constants::ALWAYS
59
+ self
60
+ end
61
+
62
+ #
63
+ # Requires that a manual follow-up check is performed only on failed checks,
64
+ # and those with a low level of confidence
65
+ #
66
+ # @return [self]
67
+ #
68
+ def with_manual_check_fallback
69
+ @manual_check = Constants::FALLBACK
70
+ self
71
+ end
72
+
73
+ #
74
+ # Requires that only an automated check is performed. No manual follow-up
75
+ # Check will ever be initiated
76
+ #
77
+ # @return [self]
78
+ #
79
+ def with_manual_check_never
80
+ @manual_check = Constants::NEVER
81
+ self
82
+ end
83
+
42
84
  #
43
85
  # @return [RequestedDocumentAuthenticityCheck]
44
86
  #
45
87
  def build
46
- config = RequestedDocumentAuthenticityCheckConfig.new
88
+ config = RequestedDocumentAuthenticityCheckConfig.new(@manual_check)
47
89
  RequestedDocumentAuthenticityCheck.new(config)
48
90
  end
49
91
  end
@@ -63,7 +63,7 @@ module Yoti
63
63
  end
64
64
 
65
65
  #
66
- # Requires that a manual follow-up check is performed only on failed Checks,
66
+ # Requires that a manual follow-up check is performed only on failed checks,
67
67
  # and those with a low level of confidence
68
68
  #
69
69
  # @return [self]
@@ -74,7 +74,7 @@ module Yoti
74
74
  end
75
75
 
76
76
  #
77
- # Requires that only an automated Check is performed. No manual follow-up
77
+ # Requires that only an automated check is performed. No manual follow-up
78
78
  # Check will ever be initiated
79
79
  #
80
80
  # @return [self]
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yoti
4
+ module DocScan
5
+ module Session
6
+ module Create
7
+ #
8
+ # Requests creation of an ID Document Comparison Check
9
+ #
10
+ class RequestedIdDocumentComparisonCheck < RequestedCheck
11
+ def initialize(config)
12
+ Validation.assert_is_a(
13
+ RequestedIdDocumentComparisonCheckConfig,
14
+ config,
15
+ 'config'
16
+ )
17
+
18
+ super(Constants::ID_DOCUMENT_COMPARISON, config)
19
+ end
20
+
21
+ #
22
+ # @return [RequestedIdDocumentComparisonCheckBuilder]
23
+ #
24
+ def self.builder
25
+ RequestedIdDocumentComparisonCheckBuilder.new
26
+ end
27
+ end
28
+
29
+ #
30
+ # The configuration applied when creating a {RequestedIdDocumentComparisonCheck}
31
+ #
32
+ class RequestedIdDocumentComparisonCheckConfig
33
+ def as_json(*_args)
34
+ {}
35
+ end
36
+ end
37
+
38
+ #
39
+ # Builder to assist the creation of {RequestedIdDocumentComparisonCheck}
40
+ #
41
+ class RequestedIdDocumentComparisonCheckBuilder
42
+ #
43
+ # @return [RequestedIdDocumentComparisonCheck]
44
+ #
45
+ def build
46
+ config = RequestedIdDocumentComparisonCheckConfig.new
47
+ RequestedIdDocumentComparisonCheck.new(config)
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -14,6 +14,7 @@ module Yoti
14
14
  # @param [Array<RequestedTask>] requested_tasks
15
15
  # @param [SdkConfig] sdk_config
16
16
  # @param [Array<RequiredDocument>] required_documents
17
+ # @param [Boolean] block_biometric_consent
17
18
  #
18
19
  def initialize(
19
20
  client_session_token_ttl,
@@ -23,7 +24,8 @@ module Yoti
23
24
  requested_checks,
24
25
  requested_tasks,
25
26
  sdk_config,
26
- required_documents
27
+ required_documents,
28
+ block_biometric_consent = nil
27
29
  )
28
30
  Validation.assert_is_a(Integer, client_session_token_ttl, 'client_session_token_ttl', true)
29
31
  @client_session_token_ttl = client_session_token_ttl
@@ -48,6 +50,8 @@ module Yoti
48
50
 
49
51
  Validation.assert_is_a(Array, required_documents, 'required_documents', true)
50
52
  @required_documents = required_documents
53
+
54
+ @block_biometric_consent = block_biometric_consent
51
55
  end
52
56
 
53
57
  def to_json(*_args)
@@ -63,7 +67,8 @@ module Yoti
63
67
  requested_checks: @requested_checks.map(&:as_json),
64
68
  requested_tasks: @requested_tasks.map(&:as_json),
65
69
  sdk_config: @sdk_config,
66
- required_documents: @required_documents.map(&:as_json)
70
+ required_documents: @required_documents.map(&:as_json),
71
+ block_biometric_consent: @block_biometric_consent
67
72
  }.compact
68
73
  end
69
74
 
@@ -181,6 +186,18 @@ module Yoti
181
186
  self
182
187
  end
183
188
 
189
+ #
190
+ # Whether or not to block the collection of biometric consent
191
+ #
192
+ # @param [Boolean] block_biometric_consent
193
+ #
194
+ # @return [self]
195
+ #
196
+ def with_block_biometric_consent(block_biometric_consent)
197
+ @block_biometric_consent = block_biometric_consent
198
+ self
199
+ end
200
+
184
201
  #
185
202
  # @return [SessionSpecification]
186
203
  #
@@ -193,7 +210,8 @@ module Yoti
193
210
  @requested_checks,
194
211
  @requested_tasks,
195
212
  @sdk_config,
196
- @required_documents
213
+ @required_documents,
214
+ @block_biometric_consent
197
215
  )
198
216
  end
199
217
  end
@@ -26,6 +26,9 @@ module Yoti
26
26
  # @return [ResourceContainer]
27
27
  attr_reader :resources
28
28
 
29
+ # @return [DateTime]
30
+ attr_reader :biometric_consent_timestamp
31
+
29
32
  #
30
33
  # @param [Hash] response
31
34
  #
@@ -53,6 +56,8 @@ module Yoti
53
56
  end
54
57
 
55
58
  @resources = ResourceContainer.new(response['resources']) unless response['resources'].nil?
59
+
60
+ @biometric_consent_timestamp = DateTime.parse(response['biometric_consent']) unless response['biometric_consent'].nil?
56
61
  end
57
62
 
58
63
  #
@@ -83,6 +88,13 @@ module Yoti
83
88
  @checks.select { |check| check.is_a?(LivenessCheckResponse) }
84
89
  end
85
90
 
91
+ #
92
+ # @return [Array<IdDocumentComparisonCheckResponse>]
93
+ #
94
+ def id_document_comparison_checks
95
+ @checks.select { |check| check.is_a?(IdDocumentComparisonCheckResponse) }
96
+ end
97
+
86
98
  private
87
99
 
88
100
  #
@@ -95,6 +107,8 @@ module Yoti
95
107
  case check['type']
96
108
  when Constants::ID_DOCUMENT_AUTHENTICITY
97
109
  AuthenticityCheckResponse.new(check)
110
+ when Constants::ID_DOCUMENT_COMPARISON
111
+ IdDocumentComparisonCheckResponse.new(check)
98
112
  when Constants::ID_DOCUMENT_FACE_MATCH
99
113
  FaceMatchCheckResponse.new(check)
100
114
  when Constants::ID_DOCUMENT_TEXT_DATA_CHECK
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Yoti
4
+ module DocScan
5
+ module Session
6
+ module Retrieve
7
+ class IdDocumentComparisonCheckResponse < CheckResponse
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,4 +1,4 @@
1
1
  module Yoti
2
2
  # @return [String] the gem's current version
3
- VERSION = '1.8.0'.freeze
3
+ VERSION = '1.9.0'.freeze
4
4
  end
@@ -21,6 +21,7 @@ Gem::Specification.new do |spec|
21
21
  exclude_patterns = [
22
22
  '^(test|spec|features|examples|docs|.github)/',
23
23
  '^.gitignore$',
24
+ '^.pre-commit-config.yaml$',
24
25
  '^sonar-project.properties$',
25
26
  '^.dependabot/config.yml$',
26
27
  '^.travis.yml$',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yoti
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoti
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-09 00:00:00.000000000 Z
11
+ date: 2020-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-protobuf
@@ -193,6 +193,7 @@ files:
193
193
  - lib/yoti/doc_scan/session/create/requested_check.rb
194
194
  - lib/yoti/doc_scan/session/create/requested_document_authenticity_check.rb
195
195
  - lib/yoti/doc_scan/session/create/requested_face_match_check.rb
196
+ - lib/yoti/doc_scan/session/create/requested_id_document_comparison_check.rb
196
197
  - lib/yoti/doc_scan/session/create/requested_liveness_check.rb
197
198
  - lib/yoti/doc_scan/session/create/requested_task.rb
198
199
  - lib/yoti/doc_scan/session/create/requested_text_extraction_task.rb
@@ -213,6 +214,7 @@ files:
213
214
  - lib/yoti/doc_scan/session/retrieve/generated_media.rb
214
215
  - lib/yoti/doc_scan/session/retrieve/generated_text_data_check_response.rb
215
216
  - lib/yoti/doc_scan/session/retrieve/get_session_result.rb
217
+ - lib/yoti/doc_scan/session/retrieve/id_document_comparison_check_response.rb
216
218
  - lib/yoti/doc_scan/session/retrieve/id_document_resource_response.rb
217
219
  - lib/yoti/doc_scan/session/retrieve/liveness_check_response.rb
218
220
  - lib/yoti/doc_scan/session/retrieve/liveness_resource_response.rb
@@ -268,7 +270,7 @@ homepage: https://github.com/getyoti/yoti-ruby-sdk
268
270
  licenses:
269
271
  - MIT
270
272
  metadata: {}
271
- post_install_message:
273
+ post_install_message:
272
274
  rdoc_options: []
273
275
  require_paths:
274
276
  - lib
@@ -284,7 +286,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
284
286
  version: '0'
285
287
  requirements: []
286
288
  rubygems_version: 3.0.6
287
- signing_key:
289
+ signing_key:
288
290
  specification_version: 4
289
291
  summary: Yoti Ruby SDK for back-end integration.
290
292
  test_files: []