Files
grecia/app/mailers/mailer.rb
taitus 0af765a3bd Update "comment" notification email to add unsubscribe link
We modified the link that previously redirected us to the "My content"
page to redirect us to the new page for managing subscriptions.

We also adapted the existing generic text by adding a description of
the related notification.
2022-01-21 20:21:52 +01:00

160 lines
4.3 KiB
Ruby

class Mailer < ApplicationMailer
after_action :prevent_delivery_to_users_without_email
helper :text_with_links
helper :mailer
helper :users
def comment(comment)
@comment = comment
@commentable = comment.commentable
@email_to = @commentable.author.email
manage_subscriptions_token(@commentable.author)
with_user(@commentable.author) do
subject = t("mailers.comment.subject", commentable: t("activerecord.models.#{@commentable.class.name.underscore}", count: 1).downcase)
mail(to: @email_to, subject: subject) if @commentable.present? && @commentable.author.present?
end
end
def reply(reply)
@email = ReplyEmail.new(reply)
@email_to = @email.to
with_user(@email.recipient) do
mail(to: @email_to, subject: @email.subject) if @email.can_be_sent?
end
end
def email_verification(user, recipient, token, document_type, document_number)
@user = user
@email_to = recipient
@token = token
@document_type = document_type
@document_number = document_number
with_user(user) do
mail(to: @email_to, subject: t("mailers.email_verification.subject"))
end
end
def direct_message_for_receiver(direct_message)
@direct_message = direct_message
@receiver = @direct_message.receiver
@email_to = @receiver.email
with_user(@receiver) do
mail(to: @email_to, subject: t("mailers.direct_message_for_receiver.subject"))
end
end
def direct_message_for_sender(direct_message)
@direct_message = direct_message
@sender = @direct_message.sender
@email_to = @sender.email
with_user(@sender) do
mail(to: @email_to, subject: t("mailers.direct_message_for_sender.subject"))
end
end
def proposal_notification_digest(user, notifications)
@notifications = notifications
@email_to = user.email
with_user(user) do
mail(to: @email_to, subject: t("mailers.proposal_notification_digest.title", org_name: Setting["org_name"]))
end
end
def user_invite(email)
@email_to = email
I18n.with_locale(I18n.default_locale) do
mail(to: @email_to, subject: t("mailers.user_invite.subject", org_name: Setting["org_name"]))
end
end
def budget_investment_created(investment)
@investment = investment
@email_to = @investment.author.email
with_user(@investment.author) do
mail(to: @email_to, subject: t("mailers.budget_investment_created.subject"))
end
end
def budget_investment_unfeasible(investment)
@investment = investment
@author = investment.author
@email_to = @author.email
with_user(@author) do
mail(to: @email_to, subject: t("mailers.budget_investment_unfeasible.subject", code: @investment.code))
end
end
def budget_investment_selected(investment)
@investment = investment
@author = investment.author
@email_to = @author.email
with_user(@author) do
mail(to: @email_to, subject: t("mailers.budget_investment_selected.subject", code: @investment.code))
end
end
def budget_investment_unselected(investment)
@investment = investment
@author = investment.author
@email_to = @author.email
with_user(@author) do
mail(to: @email_to, subject: t("mailers.budget_investment_unselected.subject", code: @investment.code))
end
end
def newsletter(newsletter, recipient_email)
@newsletter = newsletter
@email_to = recipient_email
mail(to: @email_to, from: @newsletter.from, subject: @newsletter.subject)
end
def evaluation_comment(comment, to)
@email = EvaluationCommentEmail.new(comment)
@email_to = to
mail(to: @email_to.email, subject: @email.subject) if @email.can_be_sent?
end
def machine_learning_error(user)
@email_to = user.email
mail(to: @email_to, subject: t("mailers.machine_learning_error.subject"))
end
def machine_learning_success(user)
@email_to = user.email
mail(to: @email_to, subject: t("mailers.machine_learning_success.subject"))
end
private
def with_user(user, &block)
I18n.with_locale(user.locale, &block)
end
def prevent_delivery_to_users_without_email
if @email_to.blank?
mail.perform_deliveries = false
end
end
def manage_subscriptions_token(user)
user.add_subscriptions_token
@token = user.subscriptions_token
end
end