diff --git a/app/controllers/idv/gpo_controller.rb b/app/controllers/idv/gpo_controller.rb index 39a81c8f038..7839154f8ca 100644 --- a/app/controllers/idv/gpo_controller.rb +++ b/app/controllers/idv/gpo_controller.rb @@ -11,6 +11,19 @@ class GpoController < ApplicationController def index @presenter = GpoPresenter.new(current_user, url_options) @step_indicator_current_step = step_indicator_current_step + # Funnel::DocAuth::RegisterStep.new(current_user.id, current_sp&.issuer). + # call(:usps_address, :view, true) + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'proposed', + user_id: current_user.id, + issuer: current_sp&.issuer, + token: :usps_address, + action: :view, + success: true, + }.to_json, + ) analytics.idv_gpo_address_visited( letter_already_sent: @presenter.resend_requested?, ) @@ -45,6 +58,19 @@ def step_indicator_current_step end def update_tracking + # Funnel::DocAuth::RegisterStep.new(current_user.id, current_sp&.issuer). + # call(:usps_letter_sent, :update, true) + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'proposed', + user_id: current_user.id, + issuer: current_sp&.issuer, + token: :usps_letter_sent, + action: :update, + success: true, + }.to_json, + ) analytics.idv_gpo_address_letter_requested(resend: resend_requested?) irs_attempts_api_tracker.idv_gpo_letter_requested(resend: resend_requested?) create_user_event(:gpo_mail_sent, current_user) diff --git a/app/controllers/idv/phone_controller.rb b/app/controllers/idv/phone_controller.rb index c8354d18c04..78d9b562837 100644 --- a/app/controllers/idv/phone_controller.rb +++ b/app/controllers/idv/phone_controller.rb @@ -18,6 +18,20 @@ def new async_state = step.async_state if async_state.none? + # Funnel::DocAuth::RegisterStep.new(current_user.id, current_sp&.issuer). + # call(:verify_phone, :view, true) + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'proposed', + user_id: current_user.id, + issuer: current_sp&.issuer, + token: :verify_phone, + action: :view, + success: true, + }.to_json, + ) + analytics.idv_phone_of_record_visited render :new, locals: { gpo_letter_available: gpo_letter_available } elsif async_state.in_progress? @@ -33,6 +47,20 @@ def new def create result = idv_form.submit(step_params) + # Funnel::DocAuth::RegisterStep.new(current_user.id, current_sp&.issuer). + # call(:verify_phone, :update, result.success?) + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'proposed', + user_id: current_user.id, + issuer: current_sp&.issuer, + token: :verify_phone, + action: :update, + success: result.success?, + }.to_json, + ) + analytics.idv_phone_confirmation_form_submitted(**result.to_h) irs_attempts_api_tracker.idv_phone_submitted( success: result.success?, diff --git a/app/controllers/idv/review_controller.rb b/app/controllers/idv/review_controller.rb index d8c0646bbf2..c6f19867592 100644 --- a/app/controllers/idv/review_controller.rb +++ b/app/controllers/idv/review_controller.rb @@ -37,6 +37,19 @@ def confirm_current_password def new @applicant = idv_session.applicant + # Funnel::DocAuth::RegisterStep.new(current_user.id, current_sp&.issuer). + # call(:encrypt, :view, true) + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'proposed', + user_id: current_user.id, + issuer: current_sp&.issuer, + token: :encrypt, + action: :view, + success: true, + }.to_json, + ) analytics.idv_review_info_visited(address_verification_method: address_verification_method) gpo_mail_service = Idv::GpoMail.new(current_user) @@ -63,6 +76,19 @@ def create success: true, deactivation_reason: idv_session.profile.deactivation_reason, ) + # Funnel::DocAuth::RegisterStep.new(current_user.id, current_sp&.issuer). + # call(:verified, :view, true) + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'proposed', + user_id: current_user.id, + issuer: current_sp&.issuer, + token: :verified, + action: :view, + success: true, + }.to_json, + ) analytics.idv_final( success: true, deactivation_reason: idv_session.profile.deactivation_reason, diff --git a/app/services/funnel/doc_auth/register_step_from_analytics_submit_event.rb b/app/services/funnel/doc_auth/register_step_from_analytics_submit_event.rb index 1023a369bda..2b77efe0df3 100644 --- a/app/services/funnel/doc_auth/register_step_from_analytics_submit_event.rb +++ b/app/services/funnel/doc_auth/register_step_from_analytics_submit_event.rb @@ -9,6 +9,17 @@ class RegisterStepFromAnalyticsSubmitEvent def self.call(user_id, issuer, event, result) token = ANALYTICS_EVENT_TO_DOC_AUTH_LOG_TOKEN[event] return unless token + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'original', + user_id: user_id, + issuer: issuer, + token: token, + action: :update, + success: result, + }.to_json, + ) Funnel::DocAuth::RegisterStep.new(user_id, issuer).call(token, :update, result) end end diff --git a/app/services/funnel/doc_auth/register_step_from_analytics_view_event.rb b/app/services/funnel/doc_auth/register_step_from_analytics_view_event.rb index 7a71cdd2af2..db0854580a0 100644 --- a/app/services/funnel/doc_auth/register_step_from_analytics_view_event.rb +++ b/app/services/funnel/doc_auth/register_step_from_analytics_view_event.rb @@ -10,7 +10,19 @@ class RegisterStepFromAnalyticsViewEvent def self.call(user_id, issuer, event, result) token = ANALYTICS_EVENT_TO_DOC_AUTH_LOG_TOKEN[event] - Funnel::DocAuth::RegisterStep.new(user_id, issuer).call(token, :view, result) if token + return unless token + Rails.logger.info( + { + name: 'event_to_doc_auth_log_token', + source: 'original', + user_id: user_id, + issuer: issuer, + token: token, + action: :view, + success: result, + }.to_json, + ) + Funnel::DocAuth::RegisterStep.new(user_id, issuer).call(token, :view, result) end end end diff --git a/spec/controllers/idv/gpo_controller_spec.rb b/spec/controllers/idv/gpo_controller_spec.rb index d53b67bfca9..9dd60a0662e 100644 --- a/spec/controllers/idv/gpo_controller_spec.rb +++ b/spec/controllers/idv/gpo_controller_spec.rb @@ -38,6 +38,15 @@ ) end + it 'updates the doc auth log for the user for the usps_address_view event' do + unstub_analytics + doc_auth_log = DocAuthLog.create(user_id: user.id) + + expect { get :index }.to( + change { doc_auth_log.reload.usps_address_view_count }.from(0).to(1), + ) + end + it 'redirects if the user has sent too much mail' do allow(controller.gpo_mail_service).to receive(:mail_spammed?).and_return(true) allow(subject.idv_session).to receive(:address_mechanism_chosen?). @@ -109,6 +118,15 @@ put :create end + + it 'updates the doc auth log for the user for the usps_letter_sent event' do + unstub_analytics + doc_auth_log = DocAuthLog.create(user_id: user.id) + + expect { put :create }.to( + change { doc_auth_log.reload.usps_letter_sent_submit_count }.from(0).to(1), + ) + end end context 'resending a letter' do diff --git a/spec/controllers/idv/phone_controller_spec.rb b/spec/controllers/idv/phone_controller_spec.rb index 12659a8d800..c91fc19a7da 100644 --- a/spec/controllers/idv/phone_controller_spec.rb +++ b/spec/controllers/idv/phone_controller_spec.rb @@ -40,6 +40,15 @@ stub_verify_steps_one_and_two(user) end + it 'updates the doc auth log for the user for the usps_letter_sent event' do + unstub_analytics + doc_auth_log = DocAuthLog.create(user_id: user.id) + + expect { get :new }.to( + change { doc_auth_log.reload.verify_phone_view_count }.from(0).to(1), + ) + end + context 'when the phone number has been confirmed as user 2FA phone' do before do subject.idv_session.user_phone_confirmation = true @@ -269,6 +278,18 @@ ) end + it 'updates the doc auth log for the user with verify_phone_submit step' do + user = create(:user, :with_phone, with: { phone: good_phone, confirmed_at: Time.zone.now }) + unstub_analytics + stub_verify_steps_one_and_two(user) + + doc_auth_log = DocAuthLog.create(user_id: user.id) + + expect { put :create, params: { idv_phone_form: { phone: good_phone } } }.to( + change { doc_auth_log.reload.verify_phone_submit_count }.from(0).to(1), + ) + end + context 'when same as user phone' do before do user = build( diff --git a/spec/controllers/idv/review_controller_spec.rb b/spec/controllers/idv/review_controller_spec.rb index a0b99b9c079..2f6abec4e10 100644 --- a/spec/controllers/idv/review_controller_spec.rb +++ b/spec/controllers/idv/review_controller_spec.rb @@ -219,6 +219,15 @@ def show ), ) end + + it 'updates the doc auth log for the user for the encrypt view event' do + unstub_analytics + doc_auth_log = DocAuthLog.create(user_id: user.id) + + expect { get :new }.to( + change { doc_auth_log.reload.encrypt_view_count }.from(0).to(1), + ) + end end context 'user has not requested too much mail' do @@ -630,6 +639,17 @@ def show deactivation_reason: 'threatmetrix_review_pending' ) end + + it 'updates the doc auth log for the user for the verified view event' do + unstub_analytics + doc_auth_log = DocAuthLog.create(user_id: user.id) + + expect do + put :create, params: { user: { password: ControllerHelper::VALID_PASSWORD } } + end.to( + change { doc_auth_log.reload.verified_view_count }.from(0).to(1), + ) + end end end diff --git a/spec/support/analytics_helper.rb b/spec/support/analytics_helper.rb index 1b016a9a0b4..ef5a392230e 100644 --- a/spec/support/analytics_helper.rb +++ b/spec/support/analytics_helper.rb @@ -3,4 +3,9 @@ def stub_analytics controller.analytics = FakeAnalytics.new @analytics = controller.analytics end + + def unstub_analytics + controller.analytics = nil + @analytics = nil + end end