Class: SmileIdentityCore::WebApi
- Inherits:
-
Object
- Object
- SmileIdentityCore::WebApi
- Defined in:
- lib/smile-identity-core/web_api.rb
Overview
Allows Identity verifications of ids with images
Instance Method Summary collapse
- #get_job_status(partner_params, options) ⇒ Object
- #get_web_token(request_params) ⇒ Object
- #id_info=(id_info) ⇒ Object
- #images=(images) ⇒ Object
-
#initialize(partner_id, default_callback, api_key, sid_server) ⇒ WebApi
constructor
A new instance of WebApi.
- #options=(options) ⇒ Object
- #partner_params=(partner_params) ⇒ Object
- #submit_job(partner_params, images, id_info, options) ⇒ Object
Constructor Details
#initialize(partner_id, default_callback, api_key, sid_server) ⇒ WebApi
Returns a new instance of WebApi.
14 15 16 17 18 19 20 |
# File 'lib/smile-identity-core/web_api.rb', line 14 def initialize(partner_id, default_callback, api_key, sid_server) @api_key = api_key @callback_url = default_callback @partner_id = partner_id.to_s @sid_server = sid_server @url = SmileIdentityCore::ENV.determine_url(sid_server) end |
Instance Method Details
#get_job_status(partner_params, options) ⇒ Object
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/smile-identity-core/web_api.rb', line 42 def get_job_status(partner_params, ) partner_params = symbolize_keys partner_params @timestamp = Time.now.to_i user_id = partner_params[:user_id] job_id = partner_params[:job_id] utilities = SmileIdentityCore::Utilities.new(@partner_id, @api_key, @sid_server) utilities.get_job_status(user_id, job_id, ) end |
#get_web_token(request_params) ⇒ Object
119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
# File 'lib/smile-identity-core/web_api.rb', line 119 def get_web_token(request_params) raise ArgumentError, 'Please ensure that you send through request params' if request_params.nil? raise ArgumentError, 'Request params needs to be an object' unless request_params.is_a?(Hash) callback_url = request_params[:callback_url] || @callback_url request_params[:callback_url] = callback_url keys = %i[user_id job_id product callback_url] blank_keys = get_blank_keys(keys, request_params) = "#{blank_keys.join(', ')} #{blank_keys.length > 1 ? 'are' : 'is'} required to get a web token" raise ArgumentError, unless blank_keys.empty? request_web_token(request_params) end |
#id_info=(id_info) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/smile-identity-core/web_api.rb', line 81 def id_info=(id_info) updated_id_info = id_info.nil? ? {} : id_info # if it doesnt exist, set it false updated_id_info[:entered] = 'false' if !updated_id_info.key?(:entered) || id_info[:entered].empty? # if it's a boolean updated_id_info[:entered] = id_info[:entered].to_s is_jt6 = @partner_params[:job_type].to_i == JobType::DOCUMENT_VERIFICATION is_jt11 = @partner_params[:job_type].to_i == JobType::ENHANCED_DOCUMENT_VERIFICATION keys = if is_jt6 || is_jt11 %i[country] else %i[country id_type id_number] end keys.push(:id_type) if is_jt11 if updated_id_info[:entered] == 'true' || is_jt6 || is_jt11 keys.each do |key| raise ArgumentError, "Please make sure that #{key} is included in the id_info" if id_info[key].to_s.empty? end end @id_info = updated_id_info end |
#images=(images) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/smile-identity-core/web_api.rb', line 68 def images=(images) raise ArgumentError, 'Please ensure that you send through image details' if images.nil? raise ArgumentError, 'Image details needs to be an array' unless images.is_a?(Array) # all job types require atleast a selfie if images.empty? || images.none? { |h| (h[:image_type_id]).zero? || h[:image_type_id] == 2 } raise ArgumentError, 'You need to send through at least one selfie image' end @images = images.map { |image| symbolize_keys image } end |
#options=(options) ⇒ Object
108 109 110 111 112 113 114 115 116 117 |
# File 'lib/smile-identity-core/web_api.rb', line 108 def () = || {} [:optional_callback] = check_string(:optional_callback, ) [:return_job_status] = check_boolean(:return_job_status, ) [:return_image_links] = check_boolean(:return_image_links, ) [:return_history] = check_boolean(:return_history, ) @options = end |
#partner_params=(partner_params) ⇒ Object
53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/smile-identity-core/web_api.rb', line 53 def partner_params=(partner_params) raise ArgumentError, 'Please ensure that you send through partner params' if partner_params.nil? raise ArgumentError, 'Partner params needs to be a hash' unless partner_params.is_a?(Hash) %i[user_id job_id job_type].each do |key| if partner_params[key].to_s.empty? raise ArgumentError, "Please make sure that #{key} is included in the partner params" end end @partner_params = partner_params end |
#submit_job(partner_params, images, id_info, options) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/smile-identity-core/web_api.rb', line 22 def submit_job(partner_params, images, id_info, ) self.partner_params = symbolize_keys partner_params if [JobType::ENHANCED_KYC, JobType::BUSINESS_VERIFICATION].include?(@partner_params[:job_type].to_i) return SmileIdentityCore::IDApi.new(@partner_id, @api_key, @sid_server).submit_job(partner_params, id_info) end self.images = images self.id_info = symbolize_keys id_info self. = symbolize_keys @callback_url = @options[:optional_callback] if @options[:optional_callback]&.length&.positive? validate_enroll_with_id if @partner_params[:job_type].to_i == 1 validate_return_data setup_requests end |