diff --git a/app/jobs/dispute_status_update_job.rb b/app/jobs/dispute_status_update_job.rb index 5e42f29e1..3051b0ce3 100644 --- a/app/jobs/dispute_status_update_job.rb +++ b/app/jobs/dispute_status_update_job.rb @@ -1,6 +1,7 @@ class DisputeStatusUpdateJob < ApplicationJob - def perform(logger: Logger.new($stdout)) + def perform(logger: Logger.new($stdout), include_closed: false) @logger = logger + @include_closed = include_closed @backlog = { 'activated': 0, 'closed': 0, 'activate_fail': [], 'close_fail': [] } .with_indifferent_access @@ -15,7 +16,11 @@ class DisputeStatusUpdateJob < ApplicationJob end def close_disputes - disputes = Dispute.where(closed: nil).where('expires_at < ?', Time.zone.today).all + disputes = if @include_closed + Dispute.where('expires_at < ?', Time.zone.today).all + else + Dispute.where(closed: nil).where('expires_at < ?', Time.zone.today).all + end @logger.info "DisputeStatusUpdateJob - Found #{disputes.count} closable disputes" disputes.each do |dispute| process_dispute(dispute, closing: true) diff --git a/lib/tasks/check_closed_disputes.rake b/lib/tasks/check_closed_disputes.rake new file mode 100644 index 000000000..52f863c69 --- /dev/null +++ b/lib/tasks/check_closed_disputes.rake @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +namespace :disputes do + desc 'Check closed disputes with expired_at in the Past' + task check_closed: :environment do + DisputeStatusUpdateJob.perform_now(include_closed: true) + end +end