Class: SmileIdentityCore::IDApi

Inherits:
Object
  • Object
show all
Includes:
Validations
Defined in:
lib/smile-identity-core/id_api.rb

Overview

Allows you to query the Identity Information for an individual using their ID number

Constant Summary collapse

REQUIRED_ID_INFO_FIELD =
%i[country id_type id_number].freeze

Instance Method Summary collapse

Methods included from Validations

#validate_id_info, #validate_partner_params

Constructor Details

#initialize(partner_id, api_key, sid_server) ⇒ IDApi

Returns a new instance of IDApi.



12
13
14
15
16
# File 'lib/smile-identity-core/id_api.rb', line 12

def initialize(partner_id, api_key, sid_server)
  @api_key = api_key
  @partner_id = partner_id.to_s
  @url = SmileIdentityCore::ENV.determine_url(sid_server)
end

Instance Method Details

#submit_job(partner_params, id_info, options = {}) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/smile-identity-core/id_api.rb', line 18

def submit_job(partner_params, id_info, options = {})
  @partner_params = validate_partner_params(symbolize_keys(partner_params))
  @id_info = validate_id_info(symbolize_keys(id_info), REQUIRED_ID_INFO_FIELD)

  unless [JobType::ENHANCED_KYC, JobType::BUSINESS_VERIFICATION].include?(@partner_params[:job_type].to_i)
    raise ArgumentError, 'Please ensure that you are setting your job_type to 5 or 7 to query ID Api'
  end

  if partner_params[:job_type] == JobType::BUSINESS_VERIFICATION
    return SmileIdentityCore::BusinessVerification
        .new(@partner_id, @api_key, @url)
        .submit_job(partner_params, id_info)
  end

  options = symbolize_keys(options || {})
  @use_async_endpoint = options.fetch(:async, false)

  setup_requests
end