smile-identity-core 2.0.0 → 2.1.1
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 +4 -4
- data/CHANGELOG.md +12 -2
- data/Gemfile.lock +1 -1
- data/examples/business_verification.rb +14 -6
- data/lib/smile-identity-core/business_verification.rb +0 -3
- data/lib/smile-identity-core/constants/job_type.rb +15 -2
- data/lib/smile-identity-core/id_api.rb +17 -35
- data/lib/smile-identity-core/validations.rb +1 -1
- data/lib/smile-identity-core/version.rb +1 -1
- data/lib/smile-identity-core/web_api.rb +2 -7
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cfb7b18b264e3489d0e51f3f9cae6c8557ef535fbf3b348e6b843695c748d76f
|
4
|
+
data.tar.gz: 0f1c92749d1a139f02bd8216136eab00842d718425e45a5ffbe7174a69d1cf8a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3d66bd0c015e777468b738e58116219ae48dfa99a98ef2b8a8d53abe2c7d6cc07804e23316aeb39aa0affc1c8be03307d4378c088831e37bb5084910d180713c
|
7
|
+
data.tar.gz: 5eec195935a7fbd2eaf0f85930f8ebbe5578a6be874ff7288b7cc43c120cae9e2666f40eaf043245824657bee3988a4deda19fc93fd59f35def7bb60430454ab
|
data/CHANGELOG.md
CHANGED
@@ -6,16 +6,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [2.1.1] - 2022-12-13
|
10
|
+
### Added
|
11
|
+
- Adds UPDATE_PHOTO and COMPARE_USER_INFO to JobType
|
12
|
+
### Changed
|
13
|
+
- Fix wrong constant values for JobType SMART_SELFIE_AUTHENTICATION and SMART_SELFIE_REGISTRATION
|
14
|
+
|
15
|
+
# [2.1.0] - 2022-10-28
|
16
|
+
## Changed
|
17
|
+
- Moved Business verification to IDApi
|
18
|
+
|
9
19
|
# [2.0.0] - 2022-10-24
|
10
20
|
### Added
|
11
21
|
- build: Adds support for ruby 3.1
|
12
22
|
- docs: adds "examples" folder
|
13
|
-
- Adds Business
|
23
|
+
- Adds Business Verification product
|
14
24
|
|
15
25
|
### Changed
|
16
26
|
- ci: Move from TravisCI to Github Actions
|
17
27
|
- core: Enforces the use of signature on all API calls
|
18
|
-
- core: Adds helper constants SMILE_IDENTITY_CORE::ENV, SMILE_IDENTITY_CORE::
|
28
|
+
- core: Adds helper constants SMILE_IDENTITY_CORE::ENV, SMILE_IDENTITY_CORE::ImageType, SMILE_IDENTITY_CORE::JobType
|
19
29
|
- Fixes invalid links in gemspec
|
20
30
|
|
21
31
|
### Removed
|
data/Gemfile.lock
CHANGED
@@ -11,12 +11,12 @@ default_callback = '<Put your default callback url here>'
|
|
11
11
|
api_key = '<Put your API key here>'; # copy your API key from the Smile Identity portal
|
12
12
|
sid_server = '<0 | 1>'; # Use '0' for the sandbox server, use '1' for production server
|
13
13
|
|
14
|
-
connection = SmileIdentityCore::
|
14
|
+
connection = SmileIdentityCore::IDApi.new(partner_id, default_callback, api_key, sid_server)
|
15
15
|
|
16
16
|
# Create required tracking parameters
|
17
17
|
partner_params = {
|
18
|
-
job_id:
|
19
|
-
user_id:
|
18
|
+
job_id: '<put your unique job ID here>',
|
19
|
+
user_id: '<put your unique ID for the user here>',
|
20
20
|
job_type: SmileIdentityCore::JobType::BUSINESS_VERIFICATION
|
21
21
|
}
|
22
22
|
|
@@ -25,13 +25,21 @@ id_info = {
|
|
25
25
|
# The country where ID document was issued
|
26
26
|
country: '<2-letter country code>',
|
27
27
|
# The ID document type
|
28
|
+
# Available types BASIC_BUSINESS_REGISTRATION, BUSINESS_REGISTRATION and TAX_INFORMATION
|
28
29
|
id_type: '<id type>',
|
29
30
|
# The business registration or tax number
|
30
|
-
id_number: '
|
31
|
+
id_number: '0000000',
|
31
32
|
# The business incorporation type bn - business name, co - private/public limited, it - incorporated trustees
|
32
33
|
# Only required for BASIC_BUSINESS_REGISTRATION and BUSINESS_REGISTRATION in Nigeria
|
33
|
-
business_type: '
|
34
|
+
business_type: 'co',
|
35
|
+
# Postal address of business. Only Required for BUSINESS_REGISTRATION in Kenya
|
36
|
+
postal_address: '<postal address>',
|
37
|
+
# Postal code of business. Only Required for BUSINESS_REGISTRATION in Kenya
|
38
|
+
postal_code: '<postal code>'
|
34
39
|
}
|
35
40
|
|
41
|
+
# Set the options for the job
|
42
|
+
options = {}
|
43
|
+
|
36
44
|
# Submit the job
|
37
|
-
connection.submit_job(partner_params,
|
45
|
+
connection.submit_job(partner_params, id_info, options)
|
@@ -2,12 +2,25 @@
|
|
2
2
|
|
3
3
|
module SmileIdentityCore
|
4
4
|
module JobType
|
5
|
+
# Compares a selfie to a selfie on file.
|
5
6
|
BIOMETRIC_KYC = 1
|
6
|
-
|
7
|
-
SMART_SELFIE_AUTHENTICATION =
|
7
|
+
# Compares a selfie to a selfie on file.
|
8
|
+
SMART_SELFIE_AUTHENTICATION = 2
|
9
|
+
# Creates an enrollee, associates a selfie with a partner_id, user_id
|
10
|
+
SMART_SELFIE_REGISTRATION = 4
|
11
|
+
# Verifies identity information of a person with their personal
|
12
|
+
# information and ID number from one of our supported ID Types.
|
8
13
|
BASIC_KYC = 5
|
14
|
+
# Queries Identity Information of user using ID_number.
|
9
15
|
ENHANCED_KYC = 5
|
16
|
+
# Verifies user info retrieved from the ID issuing authority.
|
10
17
|
DOCUMENT_VERIFICATION = 6
|
18
|
+
# Verifies authenticity of Document IDs, confirms it's linked to the user
|
19
|
+
# using facial biometrics.
|
11
20
|
BUSINESS_VERIFICATION = 7
|
21
|
+
# Updates the photo on file for an enrolled user
|
22
|
+
UPDATE_PHOTO = 8
|
23
|
+
# Compares document verification to an id check
|
24
|
+
COMPARE_USER_INFO = 9
|
12
25
|
end
|
13
26
|
end
|
@@ -1,8 +1,14 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require_relative 'validations'
|
4
|
+
|
3
5
|
module SmileIdentityCore
|
4
6
|
# Allows you to query the Identity Information for an individual using their ID number
|
5
7
|
class IDApi
|
8
|
+
include Validations
|
9
|
+
|
10
|
+
REQUIRED_ID_INFO_FIELD = %i[country id_type id_number].freeze
|
11
|
+
|
6
12
|
def initialize(partner_id, api_key, sid_server)
|
7
13
|
@partner_id = partner_id.to_s
|
8
14
|
@api_key = api_key
|
@@ -15,47 +21,23 @@ module SmileIdentityCore
|
|
15
21
|
end
|
16
22
|
|
17
23
|
def submit_job(partner_params, id_info, options = {})
|
18
|
-
|
19
|
-
|
20
|
-
options = symbolize_keys(options || {})
|
21
|
-
@use_async_endpoint = options.fetch(:async, false)
|
24
|
+
@partner_params = validate_partner_params(symbolize_keys(partner_params))
|
25
|
+
@id_info = validate_id_info(symbolize_keys(id_info), REQUIRED_ID_INFO_FIELD)
|
22
26
|
|
23
|
-
|
24
|
-
raise ArgumentError, 'Please ensure that you are setting your job_type to 5 to query ID Api'
|
27
|
+
unless [JobType::ENHANCED_KYC, JobType::BUSINESS_VERIFICATION].include?(@partner_params[:job_type].to_i)
|
28
|
+
raise ArgumentError, 'Please ensure that you are setting your job_type to 5 or 7 to query ID Api'
|
25
29
|
end
|
26
30
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
raise ArgumentError, 'Please ensure that you send through partner params' if partner_params.nil?
|
32
|
-
|
33
|
-
raise ArgumentError, 'Partner params needs to be a hash' unless partner_params.is_a?(Hash)
|
34
|
-
|
35
|
-
%i[user_id job_id job_type].each do |key|
|
36
|
-
if partner_params[key].to_s.empty?
|
37
|
-
raise ArgumentError,
|
38
|
-
"Please make sure that #{key} is included in the partner params"
|
39
|
-
end
|
31
|
+
if partner_params[:job_type] == JobType::BUSINESS_VERIFICATION
|
32
|
+
return SmileIdentityCore::BusinessVerification
|
33
|
+
.new(@partner_id, @api_key, @url)
|
34
|
+
.submit_job(partner_params, id_info)
|
40
35
|
end
|
41
36
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
def id_info=(id_info)
|
46
|
-
updated_id_info = id_info
|
47
|
-
|
48
|
-
if updated_id_info.nil? || updated_id_info.keys.length.zero?
|
49
|
-
raise ArgumentError, 'Please make sure that id_info not empty or nil'
|
50
|
-
end
|
51
|
-
|
52
|
-
%i[country id_type id_number].each do |key|
|
53
|
-
unless updated_id_info[key] && !updated_id_info[key].nil? && !updated_id_info[key].empty?
|
54
|
-
raise ArgumentError, "Please make sure that #{key} is included in the id_info"
|
55
|
-
end
|
56
|
-
end
|
37
|
+
options = symbolize_keys(options || {})
|
38
|
+
@use_async_endpoint = options.fetch(:async, false)
|
57
39
|
|
58
|
-
|
40
|
+
setup_requests
|
59
41
|
end
|
60
42
|
|
61
43
|
private
|
@@ -18,7 +18,7 @@ module SmileIdentityCore
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def validate_id_info(id_info, required_id_info_fields)
|
21
|
-
raise ArgumentError, 'Please make sure that id_info not empty or nil' if id_info.nil? || id_info.empty?
|
21
|
+
raise ArgumentError, 'Please make sure that id_info is not empty or nil' if id_info.nil? || id_info.empty?
|
22
22
|
|
23
23
|
raise ArgumentError, 'Id info needs to be a hash' unless id_info.is_a?(Hash)
|
24
24
|
|
@@ -25,14 +25,9 @@ module SmileIdentityCore
|
|
25
25
|
|
26
26
|
def submit_job(partner_params, images, id_info, options)
|
27
27
|
self.partner_params = symbolize_keys partner_params
|
28
|
-
if @partner_params[:job_type].to_i == JobType::ENHANCED_KYC
|
29
|
-
return SmileIdentityCore::IDApi.new(@partner_id, @api_key, @sid_server).submit_job(partner_params, id_info)
|
30
|
-
end
|
31
28
|
|
32
|
-
if @partner_params[:job_type].to_i
|
33
|
-
return SmileIdentityCore::
|
34
|
-
partner_params, id_info
|
35
|
-
)
|
29
|
+
if [JobType::ENHANCED_KYC, JobType::BUSINESS_VERIFICATION].include?(@partner_params[:job_type].to_i)
|
30
|
+
return SmileIdentityCore::IDApi.new(@partner_id, @api_key, @sid_server).submit_job(partner_params, id_info)
|
36
31
|
end
|
37
32
|
|
38
33
|
self.images = images
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smile-identity-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Smile Identity
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -213,7 +213,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
213
213
|
- !ruby/object:Gem::Version
|
214
214
|
version: '0'
|
215
215
|
requirements: []
|
216
|
-
rubygems_version: 3.3.
|
216
|
+
rubygems_version: 3.3.26
|
217
217
|
signing_key:
|
218
218
|
specification_version: 4
|
219
219
|
summary: The Smile Identity Web API allows the user to access\ most of the features
|