Make mass action less complicated

This commit is contained in:
Karl Erik Õunapuu 2020-11-04 17:04:12 +02:00
parent de5b85b115
commit d80007d83c
No known key found for this signature in database
GPG key ID: C9DD647298A34764

View file

@ -1,17 +1,20 @@
class MassAction class MassAction
def self.process(action_type, entries) def self.process(action_type, entries)
entries = CSV.read(entries, headers: true) entries = CSV.read(entries, headers: true)
case action_type return process_force_delete(entries) if action_type == 'force_delete'
when 'force_delete'
return false unless force_delete_entries_valid?(entries)
process_force_delete(entries) false
end
rescue StandardError rescue StandardError
false false
end end
def self.process_force_delete(entries) def self.process_force_delete(entries)
return false unless force_delete_entries_valid?(entries)
apply_force_deletes(entries)
end
def self.apply_force_deletes(entries)
log = { ok: [], fail: [] } log = { ok: [], fail: [] }
entries.each do |e| entries.each do |e|
dn = Domain.find_by(name_puny: e['domain_name']) dn = Domain.find_by(name_puny: e['domain_name'])
@ -25,15 +28,11 @@ class MassAction
end end
def self.force_delete_entries_valid?(entries) def self.force_delete_entries_valid?(entries)
valid = true
entries.each do |e| entries.each do |e|
unless e['domain_name'].present? && %w[IDENT_BURIED EMAIL PHONE].include?(e['delete_reason']) reasons = %w[IDENT_BURIED EMAIL PHONE]
valid = false return false unless e['domain_name'].present? && reasons.include?(e['delete_reason'])
end
end end
valid true
rescue StandardError
false
end end
end end