2 changed files with 47 additions and 0 deletions
@ -0,0 +1,26 @@
|
||||
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 |
||||
|
@ -0,0 +1,21 @@
|
||||
require "helpers/invalid_logs_helper" |
||||
|
||||
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 |
||||
|
||||
year = args[:year] || current_collection_year |
||||
InvalidLogsHelper.count_and_display_invalid_logs(LettingsLog, "LettingsLog", year) |
||||
InvalidLogsHelper.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 |
||||
|
||||
year = args[:year] || current_collection_year |
||||
InvalidLogsHelper.surface_invalid_logs(LettingsLog, "LettingsLog", year) |
||||
InvalidLogsHelper.surface_invalid_logs(SalesLog, "SalesLog", year) |
||||
end |
||||
end |
Loading…
Reference in new issue