diff --git a/app/controllers/idv/verify_info_controller.rb b/app/controllers/idv/verify_info_controller.rb index 88eb5f10904..2cee07ae6ab 100644 --- a/app/controllers/idv/verify_info_controller.rb +++ b/app/controllers/idv/verify_info_controller.rb @@ -1,6 +1,5 @@ module Idv class VerifyInfoController < ApplicationController - include StringRedacter include IdvSession before_action :render_404_if_verify_info_controller_disabled @@ -309,7 +308,10 @@ def idv_result_to_form_response( if state_id state_id[:state] = state if state state_id[:state_id_jurisdiction] = state_id_jurisdiction if state_id_jurisdiction - state_id[:state_id_number] = redact_alphanumeric(state_id_number) if state_id_number + if state_id_number + state_id[:state_id_number] = + StringRedacter.redact_alphanumeric(state_id_number) + end end FormResponse.new( diff --git a/app/forms/new_phone_form.rb b/app/forms/new_phone_form.rb index 3b60bc1021e..e259e031022 100644 --- a/app/forms/new_phone_form.rb +++ b/app/forms/new_phone_form.rb @@ -58,7 +58,7 @@ def phone_info @phone_info = Telephony::PhoneNumberInfo.new(type: :unknown) rescue Aws::Pinpoint::Errors::BadRequestException errors.add(:phone, :improbable_phone, type: :improbable_phone) - @redacted_phone = redact(phone) + @redacted_phone = StringRedacter.redact_alphanumeric(phone) @phone_info = Telephony::PhoneNumberInfo.new(type: :unknown) end @@ -139,10 +139,6 @@ def ingest_submitted_params(params) self.otp_make_default_number = true if default_prefs end - def redact(phone) - phone.gsub(/[a-z]/i, 'X').gsub(/\d/i, '#') - end - def confirmed_phone? false end diff --git a/app/services/idv/steps/verify_base_step.rb b/app/services/idv/steps/verify_base_step.rb index 9425e82ad52..ea04569951e 100644 --- a/app/services/idv/steps/verify_base_step.rb +++ b/app/services/idv/steps/verify_base_step.rb @@ -296,7 +296,10 @@ def idv_result_to_form_response( if state_id state_id[:state] = state if state state_id[:state_id_jurisdiction] = state_id_jurisdiction if state_id_jurisdiction - state_id[:state_id_number] = redact(state_id_number) if state_id_number + if state_id_number + state_id[:state_id_number] = + StringRedacter.redact_alphanumeric(state_id_number) + end end FormResponse.new( success: idv_success(result), @@ -305,10 +308,6 @@ def idv_result_to_form_response( ) end - def redact(text) - text.gsub(/[a-z]/i, 'X').gsub(/\d/i, '#') - end - def log_idv_verification_submitted_event(success: false, failure_reason: nil) pii_from_doc = pii || {} @flow.irs_attempts_api_tracker.idv_verification_submitted( diff --git a/app/controllers/concerns/string_redacter.rb b/app/services/string_redacter.rb similarity index 77% rename from app/controllers/concerns/string_redacter.rb rename to app/services/string_redacter.rb index 8896ed9da8d..128d6955844 100644 --- a/app/controllers/concerns/string_redacter.rb +++ b/app/services/string_redacter.rb @@ -1,5 +1,5 @@ module StringRedacter - extend ActiveSupport::Concern + module_function def redact_alphanumeric(text) text.gsub(/[a-z]/i, 'X').gsub(/\d/i, '#') diff --git a/spec/forms/new_phone_form_spec.rb b/spec/forms/new_phone_form_spec.rb index 9a1a9a561f1..01105092a8c 100644 --- a/spec/forms/new_phone_form_spec.rb +++ b/spec/forms/new_phone_form_spec.rb @@ -382,10 +382,4 @@ end end end - - describe '#redact' do - it 'leaves in punctuation and spaces, but removes letters and numbers' do - expect(form.send(:redact, '+11 (555) DEF-1234')).to eq('+## (###) XXX-####') - end - end end diff --git a/spec/services/string_redacter_spec.rb b/spec/services/string_redacter_spec.rb new file mode 100644 index 00000000000..14574db27f9 --- /dev/null +++ b/spec/services/string_redacter_spec.rb @@ -0,0 +1,10 @@ +require 'rails_helper' + +describe 'StringRedacter' do + describe '#redact_alphanumeric' do + it 'leaves in punctuation and spaces, but removes letters and numbers' do + expect(StringRedacter.redact_alphanumeric('+11 (555) DEF-1234')). + to eq('+## (###) XXX-####') + end + end +end