Extract class

#727
This commit is contained in:
Artur Beljajev 2018-02-24 20:38:16 +02:00
parent 880ce2ed62
commit e0960bcca4
10 changed files with 54 additions and 85 deletions

View file

@ -0,0 +1,39 @@
module Admin
module Domains
class ForceDeleteController < BaseController
def create
authorize! :manage, domain
domain.transaction do
domain.schedule_force_delete
domain.registrar.messages.create!(body: t('force_delete_set_on_domain', domain_name: domain.name))
if notify_by_email?
DomainDeleteMailer.forced(domain: domain,
registrar: domain.registrar,
registrant: domain.registrant,
template_name: params[:template_name]).deliver_now
end
end
redirect_to edit_admin_domain_url(domain), notice: t('.scheduled')
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?
ActiveRecord::Type::Boolean.new.type_cast_from_user(params[:notify_by_email])
end
end
end
end

View file

@ -62,34 +62,6 @@ module Admin
end
end
def schedule_force_delete
raise 'Template param cannot be empty' if params[:template_name].blank?
@domain.transaction do
@domain.schedule_force_delete
@domain.registrar.messages.create!(body: I18n.t('force_delete_set_on_domain', domain_name: @domain.name))
if notify_by_email?
DomainDeleteMailer.forced(domain: @domain,
registrar: @domain.registrar,
registrant: @domain.registrant,
template_name: params[:template_name]).deliver_now
end
end
redirect_to edit_admin_domain_url(@domain), notice: t('.scheduled')
end
def cancel_force_delete
if @domain.cancel_force_delete
flash[:notice] = t('.cancelled')
else
flash.now[:alert] = I18n.t('failed_to_update_domain')
end
redirect_to edit_admin_domain_url(@domain)
end
def versions
@domain = Domain.where(id: params[:domain_id]).includes({ versions: :item }).first
@versions = @domain.versions
@ -138,9 +110,5 @@ module Admin
def force_delete_templates
%w(removed_company death)
end
def notify_by_email?
ActiveRecord::Type::Boolean.new.type_cast_from_user(params[:notify_by_email])
end
end
end