diff --git a/app/controllers/idv/document_capture_controller.rb b/app/controllers/idv/document_capture_controller.rb index 61489f58413..d949655319a 100644 --- a/app/controllers/idv/document_capture_controller.rb +++ b/app/controllers/idv/document_capture_controller.rb @@ -20,6 +20,7 @@ def show def update flow_session['redo_document_capture'] = nil # done with this redo + idv_session.redo_document_capture = nil # done with this redo result = handle_stored_result analytics.idv_doc_auth_document_capture_submitted(**result.to_h.merge(analytics_arguments)) @@ -56,6 +57,7 @@ def confirm_hybrid_handoff_complete def confirm_document_capture_needed return if flow_session['redo_document_capture'] + return if idv_session.redo_document_capture pii = flow_session['pii_from_doc'] # hash with indifferent access return if pii.blank? && !idv_session.verify_info_step_complete? @@ -74,7 +76,8 @@ def analytics_arguments step: 'document_capture', analytics_id: 'Doc Auth', irs_reproofing: irs_reproofing?, - redo_document_capture: flow_session[:redo_document_capture], + redo_document_capture: + idv_session.redo_document_capture || flow_session[:redo_document_capture], }.compact.merge(ab_test_analytics_buckets) end diff --git a/app/controllers/idv/hybrid_handoff_controller.rb b/app/controllers/idv/hybrid_handoff_controller.rb index 396a1ffd7fb..001c2963387 100644 --- a/app/controllers/idv/hybrid_handoff_controller.rb +++ b/app/controllers/idv/hybrid_handoff_controller.rb @@ -217,10 +217,10 @@ def confirm_hybrid_handoff_needed def setup_for_redo flow_session[:redo_document_capture] = true + idv_session.redo_document_capture = true # If we previously skipped hybrid handoff for the user (because they're on a mobile # device with a camera), skip it _again_ here. - if idv_session.skip_hybrid_handoff? idv_session.flow_path = 'standard' else diff --git a/app/controllers/idv/link_sent_controller.rb b/app/controllers/idv/link_sent_controller.rb index 3c90687cdad..2a8fe5c41f2 100644 --- a/app/controllers/idv/link_sent_controller.rb +++ b/app/controllers/idv/link_sent_controller.rb @@ -49,6 +49,7 @@ def confirm_hybrid_handoff_complete def confirm_document_capture_needed return if flow_session['redo_document_capture'] + return if idv_session.redo_document_capture pii = flow_session['pii_from_doc'] # hash with indifferent access return if pii.blank? && !idv_session.verify_info_step_complete? diff --git a/app/controllers/idv/verify_info_controller.rb b/app/controllers/idv/verify_info_controller.rb index cb39e4948a1..d1510b54ada 100644 --- a/app/controllers/idv/verify_info_controller.rb +++ b/app/controllers/idv/verify_info_controller.rb @@ -25,8 +25,9 @@ def update if success # Don't allow the user to go back to document capture after verifying - if flow_session['redo_document_capture'] + if flow_session['redo_document_capture'] || idv_session.redo_document_capture flow_session.delete('redo_document_capture') + idv_session.redo_document_capture = nil idv_session.flow_path ||= 'standard' end diff --git a/app/services/idv/session.rb b/app/services/idv/session.rb index e482f1f2562..0b445c03650 100644 --- a/app/services/idv/session.rb +++ b/app/services/idv/session.rb @@ -18,6 +18,7 @@ class Session profile_confirmation profile_id profile_step_params + redo_document_capture resolution_successful skip_hybrid_handoff threatmetrix_review_status diff --git a/spec/controllers/idv/document_capture_controller_spec.rb b/spec/controllers/idv/document_capture_controller_spec.rb index 900082dc9f4..53db2deba1b 100644 --- a/spec/controllers/idv/document_capture_controller_spec.rb +++ b/spec/controllers/idv/document_capture_controller_spec.rb @@ -81,7 +81,7 @@ end context 'redo_document_capture' do - it 'adds redo_document_capture to analytics' do + it 'adds redo_document_capture to analytics using flow_session' do flow_session[:redo_document_capture] = true get :show @@ -89,6 +89,15 @@ analytics_args[:redo_document_capture] = true expect(@analytics).to have_logged_event(analytics_name, analytics_args) end + + it 'adds redo_document_capture to analytics using idv_session' do + subject.idv_session.redo_document_capture = true + + get :show + + analytics_args[:redo_document_capture] = true + expect(@analytics).to have_logged_event(analytics_name, analytics_args) + end end it 'updates DocAuthLog document_capture_view_count' do