Add logging to archiving process

This commit is contained in:
Karl Erik Õunapuu 2020-09-03 15:59:59 +03:00
parent b2dab0d316
commit 816102130b
No known key found for this signature in database
GPG key ID: C9DD647298A34764
3 changed files with 20 additions and 7 deletions

View file

@ -9,12 +9,16 @@ module Concerns
end
end
def archivable?
inactive?
def archivable?(post: false)
inactive = inactive?
log("Found archivable contact id(#{id}), code (#{code})") if inactive && !post
inactive
end
def archive
raise 'Contact cannot be archived' unless archivable?
raise 'Contact cannot be archived' unless archivable?(post: true)
destroy!
end
@ -32,6 +36,11 @@ module Concerns
def inactivity_period
Setting.orphans_contacts_in_months.months
end
def log(msg)
@logger ||= Logger.new(STDOUT)
@logger.info(msg)
end
end
end
end

View file

@ -7,8 +7,15 @@ class InactiveContacts
def archive
contacts.each do |contact|
log("Archiving contact: id(#{contact.id}), code(#{contact.code})")
contact.archive
yield contact if block_given?
end
end
def log(msg)
@logger ||= Logger.new(STDOUT)
@logger.info(msg)
end
end

View file

@ -2,13 +2,10 @@ namespace :contacts do
desc 'Archives inactive contacts'
task archive: :environment do
puts 'Starting to gather archivable contacts'
inactive_contacts = InactiveContacts.new
archived_contacts = inactive_contacts.archive
archived_contacts.each do |contact|
puts "Contact ##{contact.id} (code: #{contact.code}) is archived"
end
puts "Archived total: #{archived_contacts.count}"
end
end