Browse Source

Refactor InvalidLogsHelper for improved logging and module structure

pull/3061/head
Manny Dinssa 1 week ago
parent
commit
ad75565889
  1. 23
      app/helpers/invalid_logs_helper.rb
  2. 27
      lib/helpers/invalid_logs_helper.rb
  3. 10
      lib/tasks/invalid_logs.rake

23
app/helpers/invalid_logs_helper.rb

@ -0,0 +1,23 @@
module InvalidLogsHelper
def count_and_display_invalid_logs(model, log_type, year)
invalid_logs = fetch_invalid_logs(model, year)
Rails.logger.debug "Number of invalid #{log_type} for year #{year}: #{invalid_logs.size}"
Rails.logger.debug "Invalid #{log_type} IDs: #{invalid_logs.map(&:id).join(', ')}"
end
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.debug "#{log_type} ID: #{log.id}"
log.errors.full_messages.each { |message| Rails.logger.debug " - #{message}" }
end
else
Rails.logger.debug "No invalid #{log_type} found for year #{year}."
end
end
def fetch_invalid_logs(model, year)
model.filter_by_year(year).reject(&:valid?)
end
end

27
lib/helpers/invalid_logs_helper.rb

@ -1,27 +0,0 @@
module Helpers
module InvalidLogsHelper
module_function
def count_and_display_invalid_logs(model, log_type, year)
invalid_logs = fetch_invalid_logs(model, year)
puts "Number of invalid #{log_type} for year #{year}: #{invalid_logs.size}"
puts "Invalid #{log_type} IDs: #{invalid_logs.map(&:id).join(', ')}"
end
def surface_invalid_logs(model, log_type, year)
invalid_logs = fetch_invalid_logs(model, year)
if invalid_logs.any?
invalid_logs.each do |log|
puts "#{log_type} ID: #{log.id}"
log.errors.full_messages.each { |message| puts " - #{message}" }
end
else
puts "No invalid #{log_type} found for year #{year}."
end
end
def fetch_invalid_logs(model, year)
model.filter_by_year(year).reject(&:valid?)
end
end
end

10
lib/tasks/invalid_logs.rake

@ -4,18 +4,20 @@ namespace :logs do
desc "Count the number of invalid LettingsLog and SalesLog for a given year"
task :count_invalid, [:year] => :environment do |_task, args|
include CollectionTimeHelper
include InvalidLogsHelper
year = args[:year] || current_collection_year
InvalidLogsHelper.count_and_display_invalid_logs(LettingsLog, "LettingsLog", year)
InvalidLogsHelper.count_and_display_invalid_logs(SalesLog, "SalesLog", year)
count_and_display_invalid_logs(LettingsLog, "LettingsLog", year)
count_and_display_invalid_logs(SalesLog, "SalesLog", year)
end
desc "Surface all invalid logs and output their error messages for a given year"
task :surface_invalid, [:year] => :environment do |_task, args|
include CollectionTimeHelper
include InvalidLogsHelper
year = args[:year] || current_collection_year
InvalidLogsHelper.surface_invalid_logs(LettingsLog, "LettingsLog", year)
InvalidLogsHelper.surface_invalid_logs(SalesLog, "SalesLog", year)
surface_invalid_logs(LettingsLog, "LettingsLog", year)
surface_invalid_logs(SalesLog, "SalesLog", year)
end
end

Loading…
Cancel
Save