Browse Source

Refactor InvalidLogsHelper to improve invalid log counting and display (#3064)

* Add tasks to just count and surface invalid LettingsLog and SalesLog

* Refactor InvalidLogsHelper module structure

* Refactor InvalidLogsHelper for improved logging and module structure

* Update logging level in InvalidLogsHelper from debug to info for better visibility

* Reorganise includes in invalid_logs.rake

* Refactor InvalidLogsHelper to improve invalid log counting and display
pull/3065/head
Manny Dinssa 3 days ago committed by GitHub
parent
commit
5f4295d249
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 34
      app/helpers/invalid_logs_helper.rb

34
app/helpers/invalid_logs_helper.rb

@ -1,23 +1,29 @@
module InvalidLogsHelper
def count_and_display_invalid_logs(model, log_type, year)
invalid_logs = fetch_invalid_logs(model, year)
Rails.logger.info "Number of invalid #{log_type} for year #{year}: #{invalid_logs.size}"
Rails.logger.info "Invalid #{log_type} IDs: #{invalid_logs.map(&:id).join(', ')}"
end
invalid_ids = []
total_logs_seen = 0
def surface_invalid_logs(model, log_type, year)
invalid_logs = fetch_invalid_logs(model, year)
if invalid_logs.any?
invalid_logs.each do |log|
Rails.logger.info "#{log_type} ID: #{log.id}"
log.errors.full_messages.each { |message| Rails.logger.info " - #{message}" }
model.filter_by_year(year).find_in_batches(batch_size: 1000) do |batch|
batch.each do |log|
total_logs_seen += 1
invalid_ids << log.id unless log.valid?
end
else
Rails.logger.info "No invalid #{log_type} found for year #{year}."
Rails.logger.debug "Progress: #{invalid_ids.size} invalid logs found out of #{total_logs_seen} logs seen so far."
end
Rails.logger.info "Number of invalid #{log_type} for year #{year}: #{invalid_ids.size}"
Rails.logger.info "Invalid #{log_type} IDs: #{invalid_ids.join(', ')}"
end
def fetch_invalid_logs(model, year)
model.filter_by_year(year).reject(&:valid?)
def surface_invalid_logs(model, log_type, year)
model.filter_by_year(year).find_in_batches(batch_size: 1000) do |batch|
batch.each do |log|
next if log.valid?
error_messages = log.errors.full_messages.join(";\n")
Rails.logger.info "#{log_type} ID: #{log.id} \n Errors----\n #{error_messages}"
end
end
end
end

Loading…
Cancel
Save