Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 21 additions & 15 deletions app/jobs/resolution_proofing_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ def perform(result_id:, encrypted_arguments:, trace_id:, should_proof_state_id:,
user = User.find_by(id: user_id)

optional_threatmetrix_result = proof_lexisnexis_ddp_with_threatmetrix_if_needed(
{ applicant_pii: applicant_pii,
user: user,
threatmetrix_session_id: threatmetrix_session_id,
request_ip: request_ip,
uuid_prefix: uuid_prefix },
applicant_pii: applicant_pii,
user: user,
threatmetrix_session_id: threatmetrix_session_id,
request_ip: request_ip,
uuid_prefix: uuid_prefix,
)

callback_log_data = if dob_year_only && should_proof_state_id
Expand Down Expand Up @@ -89,25 +89,31 @@ def add_threatmetrix_result_to_callback_result(callback_log_data_result, threatm
callback_log_data_result[:threatmetrix_request_id] = threatmetrix_result.transaction_id
end

def proof_lexisnexis_ddp_with_threatmetrix_if_needed(args)
def proof_lexisnexis_ddp_with_threatmetrix_if_needed(
applicant_pii:,
user:,
threatmetrix_session_id:,
request_ip:,
uuid_prefix:
)
return unless IdentityConfig.store.lexisnexis_threatmetrix_enabled

# The API call will fail without a session ID, so do not attempt to make
# it to avoid leaking data when not required.
return if args[:threatmetrix_session_id].blank?
return if threatmetrix_session_id.blank?

return unless args[:applicant_pii]
return unless applicant_pii

ddp_pii = args[:applicant_pii].dup
ddp_pii[:threatmetrix_session_id] = args[:threatmetrix_session_id]
ddp_pii[:email] = args[:user]&.confirmed_email_addresses&.first&.email
ddp_pii[:input_ip_address] = args[:request_ip]
ddp_pii[:local_attrib_1] = args[:uuid_prefix]
ddp_pii = applicant_pii.dup
ddp_pii[:threatmetrix_session_id] = threatmetrix_session_id
ddp_pii[:email] = user&.confirmed_email_addresses&.first&.email
ddp_pii[:input_ip_address] = request_ip
ddp_pii[:local_attrib_1] = uuid_prefix

result = lexisnexis_ddp_proofer.proof(ddp_pii)

log_threatmetrix_info(result, args[:user])
add_threatmetrix_proofing_component(args[:user].id, result)
log_threatmetrix_info(result, user)
add_threatmetrix_proofing_component(user.id, result)

result
end
Expand Down