mirror of
https://github.com/internetee/registry.git
synced 2025-06-07 05:05:45 +02:00
65 lines
2.1 KiB
Ruby
65 lines
2.1 KiB
Ruby
module Admin
|
|
module Domains
|
|
class ForceDeleteController < BaseController
|
|
def create
|
|
authorize! :manage, domain
|
|
|
|
domain.transaction do
|
|
# domain.schedule_force_delete(type: force_delete_type)
|
|
# domain.registrar.notifications.create!(text: t('force_delete_set_on_domain',
|
|
# domain_name: domain.name,
|
|
# outzone_date: domain.outzone_date,
|
|
# purge_date: domain.purge_date)) # added to interactor
|
|
#
|
|
# notify_by_email if notify_by_email? # added to interactor
|
|
Domain::ForceDelete::Base.call(domain: domain, type: force_delete_type)
|
|
end
|
|
|
|
redirect_to edit_admin_domain_url(domain), notice: t('.scheduled')
|
|
end
|
|
|
|
def notify_by_email
|
|
# added to interactor
|
|
if force_delete_type == :fast_track
|
|
send_email
|
|
domain.update(contact_notification_sent_date: Time.zone.today)
|
|
else
|
|
domain.update(template_name: domain.notification_template)
|
|
end
|
|
end
|
|
|
|
def destroy
|
|
authorize! :manage, domain
|
|
domain.cancel_force_delete
|
|
redirect_to edit_admin_domain_url(domain), notice: t('.cancelled')
|
|
end
|
|
|
|
private
|
|
|
|
def domain
|
|
@domain ||= Domain.find(params[:domain_id])
|
|
end
|
|
|
|
def notify_by_email?
|
|
# added to interactor
|
|
ActiveRecord::Type::Boolean.new.cast(params[:notify_by_email])
|
|
end
|
|
|
|
def send_email
|
|
# added to interactor
|
|
DomainDeleteMailer.forced(domain: domain,
|
|
registrar: domain.registrar,
|
|
registrant: domain.registrant,
|
|
template_name: domain.notification_template).deliver_now
|
|
end
|
|
|
|
def force_delete_type
|
|
soft_delete? ? :soft : :fast_track
|
|
end
|
|
|
|
def soft_delete?
|
|
ActiveRecord::Type::Boolean.new.cast(params[:soft_delete])
|
|
end
|
|
end
|
|
end
|
|
end
|