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
1 change: 0 additions & 1 deletion app/controllers/idv/image_uploads_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ def create
def image_upload_form
@image_upload_form ||= Idv::ApiImageUploadForm.new(
params,
liveness_checking_enabled: false,
service_provider: current_sp,
analytics: analytics,
uuid_prefix: current_sp&.app_id,
Expand Down
25 changes: 4 additions & 21 deletions app/forms/idv/api_image_upload_form.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,14 @@ class ApiImageUploadForm

validates_presence_of :front
validates_presence_of :back
validates_presence_of :selfie, if: :liveness_checking_enabled?
validates_presence_of :document_capture_session

validate :validate_images
validate :throttle_if_rate_limited

def initialize(params, liveness_checking_enabled:, service_provider:, analytics: nil,
def initialize(params, service_provider:, analytics: nil,
uuid_prefix: nil, irs_attempts_api_tracker: nil)
@params = params
@liveness_checking_enabled = liveness_checking_enabled
@service_provider = service_provider
@analytics = analytics
@readable = {}
Expand Down Expand Up @@ -68,8 +66,8 @@ def post_images_to_client
response = doc_auth_client.post_images(
front_image: front.read,
back_image: back.read,
selfie_image: selfie&.read,
liveness_checking_enabled: liveness_checking_enabled?,
selfie_image: nil,
liveness_checking_enabled: false,
image_source: image_source,
user_uuid: user_uuid,
uuid_prefix: uuid_prefix,
Expand Down Expand Up @@ -125,10 +123,6 @@ def determine_response(form_response:, client_response:, doc_pii_response:)
client_response
end

def liveness_checking_enabled?
@liveness_checking_enabled
end

def image_source
if acuant_sdk_capture?
DocAuth::ImageSources::ACUANT_SDK
Expand All @@ -145,10 +139,6 @@ def back
as_readable(:back)
end

def selfie
as_readable(:selfie)
end

def document_capture_session
@document_capture_session ||= DocumentCaptureSession.find_by(
uuid: document_capture_session_uuid,
Expand All @@ -168,12 +158,6 @@ def validate_images
type: :not_a_file
)
end
if selfie.is_a? DataUrlImage::InvalidUrlFormatError
errors.add(
:selfie, t('doc_auth.errors.not_a_file'),
type: :not_a_file
)
end
end

def throttle_if_rate_limited
Expand Down Expand Up @@ -272,13 +256,12 @@ def add_costs(response)
Db::AddDocumentVerificationAndSelfieCosts.
new(user_id: user_id,
service_provider: service_provider,
liveness_checking_enabled: liveness_checking_enabled?).
liveness_checking_enabled: false).
call(response)
end

def update_funnel(client_response)
steps = %i[front_image back_image]
steps << :selfie if liveness_checking_enabled?
steps.each do |step|
Funnel::DocAuth::RegisterStep.new(user_id, service_provider&.issuer).
call(step.to_s, :update, client_response.success?)
Expand Down
1 change: 0 additions & 1 deletion spec/controllers/idv/image_uploads_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
front_image_metadata: '{"glare":99.99}',
back: DocAuthImageFixtures.document_back_image_multipart,
back_image_metadata: '{"glare":99.99}',
selfie: DocAuthImageFixtures.selfie_image_multipart,
document_capture_session_uuid: document_capture_session.uuid,
flow_path: 'standard',
}
Expand Down
33 changes: 5 additions & 28 deletions spec/forms/idv/api_image_upload_form_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@
front_image_metadata: front_image_metadata,
back: back_image,
back_image_metadata: back_image_metadata,
selfie: selfie_image,
document_capture_session_uuid: document_capture_session_uuid,
),
liveness_checking_enabled: liveness_checking_enabled?,
service_provider: build(:service_provider, issuer: 'test_issuer'),
analytics: fake_analytics,
irs_attempts_api_tracker: irs_attempts_api_tracker,
Expand All @@ -31,7 +29,6 @@
let(:selfie_image) { DocAuthImageFixtures.selfie_image_multipart }
let!(:document_capture_session) { DocumentCaptureSession.create!(user: create(:user)) }
let(:document_capture_session_uuid) { document_capture_session.uuid }
let(:liveness_checking_enabled?) { true }
let(:fake_analytics) { FakeAnalytics.new }
let(:irs_attempts_api_tracker) { IrsAttemptsApiTrackingHelper::FakeAttemptsTracker.new }

Expand All @@ -43,28 +40,6 @@
end
end

context 'with valid front and back but no selfie' do
let(:selfie_image) { nil }

context 'with liveness required' do
let(:liveness_checking_enabled?) { true }

it 'is not valid' do
expect(form.valid?).to eq(false)
expect(form.errors[:selfie]).to eq(['Please fill in this field.'])
end
end

context 'without liveness require' do
let(:liveness_checking_enabled?) { false }

it 'is valid' do
expect(form.valid?).to eq(true)
expect(form.errors).to be_blank
end
end
end

context 'when document_capture_session_uuid param is missing' do
let(:document_capture_session_uuid) { nil }

Expand Down Expand Up @@ -147,9 +122,10 @@
expect(response.success?).to eq(false)
expect(response.errors).to eq(
{
general: [t('doc_auth.errors.alerts.selfie_failure')],
hints: false,
selfie: [t('doc_auth.errors.general.fallback_field_level')],
general: [t('doc_auth.errors.general.no_liveness')],
hints: true,
front: [t('doc_auth.errors.general.fallback_field_level')],
back: [t('doc_auth.errors.general.fallback_field_level')],
},
)
expect(response.attention_with_barcode?).to eq(false)
Expand Down Expand Up @@ -246,6 +222,7 @@
},
)
end

before do
allow_any_instance_of(Idv::DocPiiForm).to receive(:submit).and_return(failed_response)
end
Expand Down