From 256a93d1fdff65e35e1404fb13c6d3d79acfa71d Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Thu, 10 Oct 2024 13:07:55 +0100 Subject: [PATCH] Refactor rake --- lib/tasks/duplicate_rent_periods.rake | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/tasks/duplicate_rent_periods.rake b/lib/tasks/duplicate_rent_periods.rake index 71ed2e549..19a20c157 100644 --- a/lib/tasks/duplicate_rent_periods.rake +++ b/lib/tasks/duplicate_rent_periods.rake @@ -4,12 +4,12 @@ def process_duplicate_rent_periods(log_groups: true) .group("organisation_id, rent_period") .having("COUNT(*) > 1") - duplicate_records = OrganisationRentPeriod + affected_records = OrganisationRentPeriod .where(organisation_id: duplicate_groups.map(&:organisation_id), rent_period: duplicate_groups.map(&:rent_period)) if log_groups duplicate_groups.each do |group| - group_records = duplicate_records.where(organisation_id: group.organisation_id, rent_period: group.rent_period) + group_records = affected_records.where(organisation_id: group.organisation_id, rent_period: group.rent_period) group_records.each do |record| Rails.logger.info "ID: #{record.id}, Organisation ID: #{record.organisation_id}, Rent Period: #{record.rent_period}" end @@ -17,18 +17,18 @@ def process_duplicate_rent_periods(log_groups: true) end end - ids_to_keep = OrganisationRentPeriod + to_keep_ids = OrganisationRentPeriod .select("MIN(id) as id") .group("organisation_id, rent_period") .having("COUNT(*) > 1") .map(&:id) - redundant_ids = duplicate_records.pluck(:id) - ids_to_keep + duplicate_ids = affected_records.pluck(:id) - to_keep_ids { - duplicate_records:, - ids_to_keep:, - redundant_ids:, + affected_records:, + to_keep_ids:, + duplicate_ids:, } end @@ -37,16 +37,16 @@ task find_redundant_rent_periods: :environment do result = process_duplicate_rent_periods(log_groups: true) Rails.logger.info "Total number of records: #{OrganisationRentPeriod.count}" - Rails.logger.info "Number of duplicate records: #{result[:duplicate_records].size}" - Rails.logger.info "Number of records to delete: #{result[:redundant_ids].size}" - Rails.logger.info "Number of records to keep: #{result[:ids_to_keep].size}" + Rails.logger.info "Number of affected records: #{result[:affected_records].size}" + Rails.logger.info "Number of records to delete: #{result[:duplicate_ids].size}" + Rails.logger.info "Number of records to keep: #{result[:to_keep_ids].size}" end desc "Delete redundant rent periods" task delete_duplicate_rent_periods: :environment do result = process_duplicate_rent_periods(log_groups: false) - OrganisationRentPeriod.where(id: result[:redundant_ids]).delete_all + OrganisationRentPeriod.where(id: result[:duplicate_ids]).delete_all - Rails.logger.info "Number of deleted duplicate records: #{result[:redundant_ids].size}" + Rails.logger.info "Number of deleted duplicate records: #{result[:duplicate_ids].size}" end