Skip to content
Merged
Show file tree
Hide file tree
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
15 changes: 15 additions & 0 deletions app/jobs/get_usps_proofing_results_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ def handle_bad_request_error(err, enrollment)
analytics(user: enrollment.user).idv_in_person_usps_proofing_results_job_exception(
reason: 'Request exception',
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
exception_class: err.class.to_s,
exception_message: err.message,
)
Expand All @@ -80,6 +81,7 @@ def handle_standard_error(err, enrollment)
analytics(user: enrollment.user).idv_in_person_usps_proofing_results_job_exception(
reason: 'Request exception',
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
exception_class: err.class.to_s,
exception_message: err.message,
)
Expand All @@ -89,13 +91,15 @@ def handle_response_is_not_a_hash(enrollment)
analytics(user: enrollment.user).idv_in_person_usps_proofing_results_job_exception(
reason: 'Bad response structure',
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
)
end

def handle_unsupported_status(enrollment, status)
analytics(user: enrollment.user).idv_in_person_usps_proofing_results_job_enrollment_failure(
reason: 'Unsupported status',
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
status: status,
)
end
Expand All @@ -104,6 +108,7 @@ def handle_unsupported_id_type(enrollment, primary_id_type)
analytics(user: enrollment.user).idv_in_person_usps_proofing_results_job_enrollment_failure(
reason: 'Unsupported ID type',
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
primary_id_type: primary_id_type,
)
end
Expand All @@ -112,6 +117,7 @@ def handle_failed_status(enrollment, response)
analytics(user: enrollment.user).idv_in_person_usps_proofing_results_job_enrollment_failure(
reason: 'Failed status',
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
failure_reason: response['failureReason'],
fraud_suspected: response['fraudSuspected'],
primary_id_type: response['primaryIdType'],
Expand All @@ -122,12 +128,21 @@ def handle_failed_status(enrollment, response)
)
end

def handle_successful_status_update(enrollment)
analytics(user: enrollment.user).idv_in_person_usps_proofing_results_job_enrollment_success(
reason: 'Successful status update',
Comment thread
svalexander marked this conversation as resolved.
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
)
end

def update_enrollment_status(enrollment, response)
case response['status']
when IPP_STATUS_PASSED
if SUPPORTED_ID_TYPES.include?(response['primaryIdType'])
enrollment.profile.activate
enrollment.update(status: :passed)
handle_successful_status_update(enrollment)
else
# Unsupported ID type
enrollment.update(status: :failed)
Expand Down
12 changes: 12 additions & 0 deletions app/services/analytics_events.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2350,5 +2350,17 @@ def idv_in_person_usps_proofing_results_job_enrollment_failure(reason:, enrollme
**extra,
)
end

# Tracks individual enrollments that succeed during GetUspsProofingResultsJob
# @param [String] reason why did this enrollment pass?
# @param [String] enrollment_id
def idv_in_person_usps_proofing_results_job_enrollment_success(reason:, enrollment_id:, **extra)
Comment thread
tomas-nava marked this conversation as resolved.
track_event(
'GetUspsProofingResultsJob: Enrollment passed proofing',
reason: reason,
enrollment_id: enrollment_id,
**extra,
)
end
end
# rubocop:enable Metrics/ModuleLength
14 changes: 14 additions & 0 deletions spec/jobs/get_usps_proofing_results_job_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@
'GetUspsProofingResultsJob: Enrollment failed proofing',
reason: 'Failed status',
enrollment_id: pending_enrollment.id,
enrollment_code: pending_enrollment.enrollment_code,
failure_reason: 'Clerk indicates that ID name or address does not match source data.',
fraud_suspected: false,
primary_id_type: 'Uniformed Services identification card',
Expand Down Expand Up @@ -137,6 +138,13 @@
expected_range.cover?(timestamp)
end
expect(enrollment.profile.active).to be(true)

expect(job_analytics).to have_logged_event(
'GetUspsProofingResultsJob: Enrollment passed proofing',
reason: 'Successful status update',
enrollment_id: enrollment.id,
enrollment_code: enrollment.enrollment_code,
)
end
end

Expand All @@ -150,6 +158,7 @@
'GetUspsProofingResultsJob: Exception raised',
reason: 'Bad response structure',
enrollment_id: pending_enrollment.id,
enrollment_code: pending_enrollment.enrollment_code,
)
end

Expand All @@ -170,6 +179,7 @@
'GetUspsProofingResultsJob: Enrollment failed proofing',
reason: 'Unsupported status',
enrollment_id: pending_enrollment.id,
enrollment_code: pending_enrollment.enrollment_code,
status: 'Not supported',
)
end
Expand All @@ -191,6 +201,7 @@
'GetUspsProofingResultsJob: Exception raised',
reason: 'Request exception',
enrollment_id: pending_enrollment.id,
enrollment_code: pending_enrollment.enrollment_code,
)
end

Expand All @@ -211,6 +222,7 @@
'GetUspsProofingResultsJob: Exception raised',
reason: 'Request exception',
enrollment_id: pending_enrollment.id,
enrollment_code: pending_enrollment.enrollment_code,
)
end

Expand Down Expand Up @@ -255,6 +267,7 @@
'GetUspsProofingResultsJob: Exception raised',
reason: 'Request exception',
enrollment_id: pending_enrollment.id,
enrollment_code: pending_enrollment.enrollment_code,
)
end

Expand All @@ -275,6 +288,7 @@
'GetUspsProofingResultsJob: Enrollment failed proofing',
reason: 'Unsupported ID type',
enrollment_id: pending_enrollment.id,
enrollment_code: pending_enrollment.enrollment_code,
primary_id_type: 'Not supported',
)
end
Expand Down