Add explicit jobs for mailers

#186
This commit is contained in:
Artur Beljajev 2016-11-18 00:14:37 +02:00
parent eada1a66dd
commit 8a831ee92c
30 changed files with 205 additions and 201 deletions

View file

@ -0,0 +1,9 @@
class DomainDeleteConfirmEmailJob < Que::Job
def run(domain_id)
domain = Domain.find(domain_id)
DomainDeleteMailer.confirm(domain: domain,
registrar: domain.registrar,
registrant: domain.registrant).deliver_now
end
end

View file

@ -0,0 +1,9 @@
class DomainDeleteForcedEmailJob < Que::Job
def run(domain_id)
domain = Domain.find(domain_id)
DomainDeleteMailer.forced(domain: domain,
registrar: domain.registrar,
registrant: domain.registrant).deliver_now
end
end

View file

@ -1,10 +1,9 @@
class DomainExpirationEmailJob < Que::Job
class DomainExpireEmailJob < Que::Job
def run(domain_id)
domain = Domain.find(domain_id)
return if domain.registered?
DomainExpireMailer.expired(domain: domain, registrar: domain.registrar).deliver_now
destroy
end
end

View file

@ -16,8 +16,9 @@ class DomainUpdateConfirmJob < Que::Job
domain.clean_pendings!
raise_errors!(domain)
when RegistrantVerification::REJECTED
RegistrantChangeMailer.rejected(domain: domain, registrar: domain.registrar, registrant: domain.registrant)
.deliver_now
RegistrantChangeMailer.rejected(domain: domain,
registrar: domain.registrar,
registrant: domain.registrant).deliver_now
domain.poll_message!(:poll_pending_update_rejected_by_registrant)
domain.clean_pendings_lowlevel

View file

@ -0,0 +1,11 @@
class RegistrantChangeConfirmEmailJob < Que::Job
def run(domain_id, new_registrant_id)
domain = Domain.find(domain_id)
new_registrant = Registrant.find(new_registrant_id)
RegistrantChangeMailer.confirm(domain: domain,
registrar: domain.registrar,
current_registrant: domain.registrant,
new_registrant: new_registrant).deliver_now
end
end

View file

@ -0,0 +1,8 @@
class RegistrantChangeExpiredEmailJob < Que::Job
def run(domain_id)
domain = Domain.find(domain_id)
RegistrantChangeMailer.expired(domain: domain,
registrar: domain.registrar,
registrant: domain.registrant).deliver_now
end
end

View file

@ -0,0 +1,11 @@
class RegistrantChangeNoticeEmailJob < Que::Job
def run(domain_id, new_registrant_id)
domain = Domain.find(domain_id)
new_registrant = Registrant.find(new_registrant_id)
RegistrantChangeMailer.notice(domain: domain,
registrar: domain.registrar,
current_registrant: domain.registrant,
new_registrant: new_registrant).deliver_now
end
end

View file

@ -1,18 +0,0 @@
class DeleteDomainMailer < ApplicationMailer
include Que::Mailer
def pending(domain:, old_registrant:)
@domain = DomainPresenter.new(domain: domain, view: view_context)
@registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context)
@verification_url = verification_url(domain)
subject = default_i18n_subject(domain_name: domain.name)
mail(to: old_registrant.email, subject: subject)
end
private
def verification_url(domain)
registrant_domain_delete_confirm_url(domain, token: domain.registrant_verification_token)
end
end

View file

@ -0,0 +1,24 @@
class DomainDeleteMailer < ApplicationMailer
def confirm(domain:, registrar:, registrant:)
@domain = DomainPresenter.new(domain: domain, view: view_context)
@registrar = RegistrarPresenter.new(registrar: registrar, view: view_context)
@confirm_url = confirm_url(domain)
subject = default_i18n_subject(domain_name: domain.name)
mail(to: registrant.email, subject: subject)
end
def forced(domain:, registrar:, registrant:)
@domain = DomainPresenter.new(domain: domain, view: view_context)
@registrar = RegistrarPresenter.new(registrar: registrar, view: view_context)
@registrant = RegistrantPresenter.new(registrant: registrant, view: view_context)
mail(to: domain.primary_contact_emails)
end
private
def confirm_url(domain)
registrant_domain_delete_confirm_url(domain, token: domain.registrant_verification_token)
end
end

View file

@ -75,14 +75,6 @@ class DomainMailer < ApplicationMailer
name: @domain.name)} [#{@domain.name}]")
end
def force_delete(domain:)
@domain = DomainPresenter.new(domain: domain, view: view_context)
@registrar = RegistrarPresenter.new(registrar: domain.registrar, view: view_context)
@registrant = RegistrantPresenter.new(registrant: domain.registrant, view: view_context)
mail(to: domain.primary_contact_emails)
end
private
# app/models/DomainMailModel provides the data for mail that can be composed_from
# which ensures that values of objects are captured when they are valid, not later when this method is executed

View file

@ -379,11 +379,8 @@ class Domain < ActiveRecord::Base
new_registrant_email = registrant.email
new_registrant_name = registrant.name
current_registrant = Registrant.find(registrant_id_was)
RegistrantChangeMailer.confirm(domain: self, registrar: registrar, current_registrant: current_registrant,
new_registrant: registrant).deliver
RegistrantChangeMailer.notice(domain: self, registrar: registrar, current_registrant: current_registrant,
new_registrant: registrant).deliver
RegistrantChangeConfirmEmailJob.enqueue(id, new_registrant_id)
RegistrantChangeNoticeEmailJob.enqueue(id, new_registrant_id)
reload
@ -444,8 +441,7 @@ class Domain < ActiveRecord::Base
pending_delete_confirmation!
save(validate: false) # should check if this did succeed
old_registrant = Registrant.find(registrant_id_was)
DeleteDomainMailer.pending(domain: self, old_registrant: old_registrant).deliver
DomainDeleteConfirmEmailJob.enqueue(id)
end
def cancel_pending_delete
@ -566,12 +562,15 @@ class Domain < ActiveRecord::Base
end
self.force_delete_at = (Time.zone.now + (Setting.redemption_grace_period.days + 1.day)).utc.beginning_of_day unless force_delete_at
transaction do
save!(validate: false)
registrar.messages.create!(
body: I18n.t('force_delete_set_on_domain', domain: name)
)
DomainMailer.force_delete(domain: self).deliver
DomainDeleteForcedEmailJob.enqueue(id)
return true
end
false
@ -745,6 +744,10 @@ class Domain < ActiveRecord::Base
pending_json['new_registrant_email']
end
def new_registrant_id
pending_json['new_registrant_id']
end
def self.to_csv
CSV.generate do |csv|
csv << column_names

View file

@ -16,8 +16,7 @@ class DomainCron
end
count += 1
if domain.pending_update?
RegistrantChangeMailer.expired(domain: domain, registrar: domain.registrar, registrant: domain.registrant)
.deliver
RegistrantChangeExpiredEmailJob.enqueue(domain.id)
end
if domain.pending_delete? || domain.pending_delete_confirmation?
DomainMailer.pending_delete_expired_notification(domain.id, true).deliver
@ -49,7 +48,7 @@ class DomainCron
saved = domain.save(validate: false)
if saved
DomainExpirationEmailJob.enqueue(domain.id, run_at: send_time)
DomainExpireEmailJob.enqueue(domain.id, run_at: send_time)
marked += 1
end
end

View file

@ -571,7 +571,6 @@ class Epp::Domain < Domain
frame.css('delete').children.css('delete').attr('verified').to_s.downcase != 'yes'
registrant_verification_asked!(frame.to_s, user_id)
self.deliver_emails = true # turn on email delivery for epp
pending_delete!
manage_automatic_statuses
true # aka 1001 pending_delete

View file

@ -8,7 +8,7 @@ Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veen
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan.
<br><br>
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ise ei kinnita või tagasi lükka.<br>
<%= link_to @verification_url, @verification_url %>
<%= link_to @confirm_url, @confirm_url %>
<br><br>
Lugupidamisega<br>
Eesti Interneti Sihtasutus
@ -23,7 +23,7 @@ Application for deletion of your domain <%= @domain.name %> has been filed. Plea
<br><br>
To confirm the update please visit this website, once again review the data and press approve:<br>
<%= link_to @verification_url, @verification_url %>
<%= link_to @confirm_url, @confirm_url %>
<br><br>
The application will remain in pending status for <%= Setting.expire_pending_confirmation %> hrs and will be automatically rejected if it is not approved nor rejected before.
<br><br>

View file

@ -7,7 +7,7 @@ Registrisse laekus taotlus domeeni <%= @domain.name %> kustutamiseks. Palun veen
Muudatuse kinnitamiseks külastage palun allolevat lehekülge, kontrollige uuesti üle muudatuse andmed ning vajutage nuppu kinnitan.
Taotlus on aktiivne <%= Setting.expire_pending_confirmation %> tundi ja lükatakse automaatselt tagasi kui te seda enne ise ei kinnita või tagasi lükka.
<%= @verification_url %>
<%= @confirm_url %>
Lugupidamisega
Eesti Interneti Sihtasutus
@ -21,7 +21,7 @@ Application for deletion of your domain <%= @domain.name %> has been filed. Plea
<%= render 'mailers/shared/registrar/registrar.en.text', registrar: @registrar %>
To confirm the update please visit this website, once again review the data and press approve:
<%= @verification_url %>
<%= @confirm_url %>
The application will remain in pending status for <%= Setting.expire_pending_confirmation %> hrs and will be automatically rejected if it is not approved nor rejected before.