diff --git a/app/services/idv/actions/verify_document_action.rb b/app/services/idv/actions/verify_document_action.rb index 632c3d5faec..314cffb93fc 100644 --- a/app/services/idv/actions/verify_document_action.rb +++ b/app/services/idv/actions/verify_document_action.rb @@ -34,7 +34,7 @@ def enqueue_job document_capture_session else create_document_capture_session( - verify_document_capture_session_uuid_key, + session_uuid_key, ) end verify_document_capture_session.requested_at = Time.zone.now @@ -54,7 +54,13 @@ def enqueue_job nil end - private + def session_uuid_key + if in_recovery_flow? + recover_verify_document_capture_session_uuid_key + else + verify_document_capture_session_uuid_key + end + end def image_params params.permit( diff --git a/app/services/idv/actions/verify_document_status_action.rb b/app/services/idv/actions/verify_document_status_action.rb index 540a0d2c30c..265e475df7b 100644 --- a/app/services/idv/actions/verify_document_status_action.rb +++ b/app/services/idv/actions/verify_document_status_action.rb @@ -64,7 +64,7 @@ def verify_document_capture_session document_capture_session else DocumentCaptureSession.find_by( - uuid: flow_session[verify_document_capture_session_uuid_key], + uuid: flow_session[session_uuid_key], ) end end @@ -97,17 +97,25 @@ def timed_out end def delete_async - flow_session.delete(verify_document_capture_session_uuid_key) + flow_session.delete(session_uuid_key) end def document_capture_analytics(message) data = { error: message, - uuid: flow_session[verify_document_capture_session_uuid_key], + uuid: flow_session[session_uuid_key], } @flow.analytics.track_event(Analytics::DOC_AUTH_ASYNC, data) end + + def session_uuid_key + if in_recovery_flow? + recover_verify_document_capture_session_uuid_key + else + verify_document_capture_session_uuid_key + end + end end end end diff --git a/app/services/idv/flows/recovery_flow.rb b/app/services/idv/flows/recovery_flow.rb index 9336e4e113b..7c10f57a785 100644 --- a/app/services/idv/flows/recovery_flow.rb +++ b/app/services/idv/flows/recovery_flow.rb @@ -29,6 +29,8 @@ class RecoveryFlow < Flow::BaseFlow ACTIONS = { reset: Idv::Actions::ResetAction, redo_ssn: Idv::Actions::RedoSsnAction, + verify_document: Idv::Actions::VerifyDocumentAction, + verify_document_status: Idv::Actions::VerifyDocumentStatusAction, }.freeze attr_reader :idv_session, :session # needed to support (and satisfy) the current LOA3 flow diff --git a/app/services/idv/steps/doc_auth_base_step.rb b/app/services/idv/steps/doc_auth_base_step.rb index 3aeed01a001..2c3c9175ab7 100644 --- a/app/services/idv/steps/doc_auth_base_step.rb +++ b/app/services/idv/steps/doc_auth_base_step.rb @@ -147,6 +147,10 @@ def verify_document_capture_session_uuid_key :verify_document_action_document_capture_session_uuid end + def in_recovery_flow? + @flow.is_a?(Idv::Flows::RecoveryFlow) + end + delegate :idv_session, :session, to: :@flow end end diff --git a/app/views/idv/doc_auth/verify.html.erb b/app/views/idv/doc_auth/verify.html.erb index 4aeca167223..6e07817718f 100644 --- a/app/views/idv/doc_auth/verify.html.erb +++ b/app/views/idv/doc_auth/verify.html.erb @@ -68,7 +68,7 @@ form_steps_wait: '', error_message: t('idv.failure.exceptions.internal_error'), alert_target: '#form-steps-wait-alert', - wait_step_path: idv_doc_auth_step_path(step: :verify_wait), + wait_step_path: @step_url == :idv_recovery_step_url ? idv_recovery_step_path(step: :verify_wait) : idv_doc_auth_step_path(step: :verify_wait), poll_interval_ms: IdentityConfig.store.poll_rate_for_verify_in_seconds * 1000, }, },