From f9feaf4a577292d0dcec94b3ffe080c34ab456b3 Mon Sep 17 00:00:00 2001 From: carolynbarker <8038496+carolynbarker@users.noreply.github.com> Date: Tue, 25 Mar 2025 18:24:32 +0000 Subject: [PATCH] CLDC-3938 Log invalid BU row numbers (#3018) * log row numbers of any logs still invalid after blanking non setup fields * include first invalid row in sentry message --------- Co-authored-by: Carolyn --- app/services/bulk_upload/lettings/validator.rb | 8 +++++--- app/services/bulk_upload/sales/validator.rb | 9 +++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/app/services/bulk_upload/lettings/validator.rb b/app/services/bulk_upload/lettings/validator.rb index 8cb3a1bd9..e1be94eec 100644 --- a/app/services/bulk_upload/lettings/validator.rb +++ b/app/services/bulk_upload/lettings/validator.rb @@ -55,8 +55,10 @@ class BulkUpload::Lettings::Validator row_parsers.each do |row_parser| row_parser.log.blank_invalid_non_setup_fields! end - if any_logs_invalid? + + if invalid_row_numbers.any? Sentry.capture_message("Bulk upload log creation blocked due to invalid logs after blanking non setup fields: #{bulk_upload.id}.") + Rails.logger.error("Lettings bulk upload #{bulk_upload.id} blocked due to invalid logs after blanking on rows #{invalid_row_numbers}") "logs_invalid" end end @@ -101,8 +103,8 @@ private end end - def any_logs_invalid? - row_parsers.any? { |row_parser| row_parser.log.invalid? } + def invalid_row_numbers + row_parsers.each_with_index.map { |row_parser, index| index + row_offset + 1 if row_parser.log.invalid? }.compact end def csv_parser diff --git a/app/services/bulk_upload/sales/validator.rb b/app/services/bulk_upload/sales/validator.rb index 0b2d68bc5..cef816ff0 100644 --- a/app/services/bulk_upload/sales/validator.rb +++ b/app/services/bulk_upload/sales/validator.rb @@ -56,8 +56,9 @@ class BulkUpload::Sales::Validator row_parser.log.blank_invalid_non_setup_fields! end - if any_logs_invalid? - Sentry.capture_message("Bulk upload log creation blocked due to invalid logs after blanking non setup fields: #{bulk_upload.id}.") + if invalid_row_numbers.any? + Sentry.capture_message("Bulk upload #{bulk_upload.id} had log creation blocked due to invalid logs after blanking non setup fields. First invalid row number: #{invalid_row_numbers.first}.") + Rails.logger.error("Sales bulk upload #{bulk_upload.id} blocked due to invalid logs after blanking on rows #{invalid_row_numbers}") "logs_invalid" end end @@ -98,8 +99,8 @@ private end end - def any_logs_invalid? - row_parsers.any? { |row_parser| row_parser.log.invalid? } + def invalid_row_numbers + row_parsers.each_with_index.map { |row_parser, index| index + row_offset + 1 if row_parser.log.invalid? }.compact end def csv_parser