houdini/app/mailers/donation_mailer.rb
Bradley M. Kuhn 6772312ea7 Relicense all .rb files under new project license.
The primary license of the project is changing to:
  AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later

with some specific files to be licensed under the one of two licenses:
   CC0-1.0
   LGPL-3.0-or-later

This commit is one of the many steps to relicense the entire codebase.

Documentation granting permission for this relicensing (from all past
contributors who hold copyrights) is on file with Software Freedom
Conservancy, Inc.
2018-03-25 15:10:40 -04:00

131 lines
6.2 KiB
Ruby

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class DonationMailer < BaseMailer
# Used for both one-time and recurring donations
# can pass in array of admin user_ids to send to only some -- if falsey/empty, will send to all
def donor_payment_notification(donation_id, locale=I18n.locale)
@donation = Donation.find(donation_id)
@nonprofit = @donation.nonprofit
if @donation.campaign && ActionView::Base.full_sanitizer.sanitize(@donation.campaign.receipt_message).present?
@thank_you_note = @donation.campaign.receipt_message
else
@thank_you_note = Format::Interpolate.with_hash(@nonprofit.thank_you_note, {'NAME' => @donation.supporter.name})
end
@charge = @donation.charges.last
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
from = Format::Name.email_from_np(@nonprofit.name)
I18n.with_locale(locale) do
mail(
to: @donation.supporter.email,
from: from,
reply_to: reply_to,
subject: I18n.t('mailer.donations.donor_direct_debit_notification.subject', nonprofit_name: @nonprofit.name))
end
end
def donor_direct_debit_notification(donation_id, locale=I18n.locale)
@donation = Donation.find(donation_id)
@nonprofit = @donation.nonprofit
if @donation.campaign && ActionView::Base.full_sanitizer.sanitize(@donation.campaign.receipt_message).present?
@thank_you_note = @donation.campaign.receipt_message
else
@thank_you_note = Format::Interpolate.with_hash(@nonprofit.thank_you_note, {'NAME' => @donation.supporter.name})
end
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
from = Format::Name.email_from_np(@nonprofit.name)
I18n.with_locale(locale) do
mail(
to: @donation.supporter.email,
from: from,
reply_to: reply_to,
subject: I18n.t('mailer.donations.donor_direct_debit_notification.subject', nonprofit_name: @nonprofit.name)
)
end
end
# Used for both one-time and recurring donations
def nonprofit_payment_notification(donation_id, user_id=nil)
@donation = Donation.find(donation_id)
@charge = @donation.charges.last
@nonprofit = @donation.nonprofit
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, @donation.campaign ? 'notify_campaigns' : 'notify_payments')
if user_id
em = User.find(user_id).email
# return unless @emails.include?(em)
@emails = [em]
end
mail(to: @emails, subject: "Donation receipt for #{@donation.supporter.name}")
end
def nonprofit_failed_recurring_donation(donation_id)
@donation = Donation.find(donation_id)
@nonprofit = @donation.nonprofit
@charge = @donation.charges.last
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, @donation.campaign ? 'notify_campaigns' : 'notify_payments')
mail(to: @emails, subject: "Recurring donation payment failure for #{@donation.supporter.name || @donation.supporter.email}")
end
def donor_failed_recurring_donation(donation_id)
@donation = Donation.find(donation_id)
@nonprofit = @donation.nonprofit
@charge = @donation.charges.last
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
from = Format::Name.email_from_np(@nonprofit.name)
mail(to: @donation.supporter.email, from: from, reply_to: reply_to, subject: "Donation payment failure for #{@nonprofit.name}")
end
def nonprofit_recurring_donation_cancellation(donation_id)
@donation = Donation.find(donation_id)
@nonprofit = @donation.nonprofit
@charge = @donation.charges.last
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, @donation.campaign ? 'notify_campaigns' : 'notify_payments')
mail(to: @emails, subject: "Recurring donation cancelled for #{@donation.supporter.name || @donation.supporter.email}")
end
def nonprofit_recurring_donation_change_amount(donation_id, previous_amount=nil)
@donation = RecurringDonation.find(donation_id).donation
@nonprofit = @donation.nonprofit
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_recurring_donations')
@previous_amount = previous_amount
mail(to: @emails, subject:"Recurring donation amount changed for #{@donation.supporter.name || @donation.supporter.email}")
end
def donor_recurring_donation_change_amount(donation_id, previous_amount=nil)
@donation = RecurringDonation.find(donation_id).donation
@nonprofit = @donation.nonprofit
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
if @nonprofit.miscellaneous_np_info && ActionView::Base.full_sanitizer.sanitize(@nonprofit.miscellaneous_np_info.change_amount_message).present?
@thank_you_note = @nonprofit.miscellaneous_np_info.change_amount_message
else
@thank_you_note = nil
end
from = Format::Name.email_from_np(@nonprofit.name)
@previous_amount = previous_amount
mail(to: @donation.supporter.email, from: from, reply_to: reply_to, subject: "Recurring donation amount changed for #{@nonprofit.name}")
end
def nonprofit_recurring_donation_change_amount(donation_id, previous_amount=nil)
@donation = RecurringDonation.find(donation_id).donation
@nonprofit = @donation.nonprofit
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_recurring_donations')
@previous_amount = previous_amount
mail(to: @emails, subject:"Recurring donation amount changed for #{@donation.supporter.name || @donation.supporter.email}")
end
def donor_recurring_donation_change_amount(donation_id, previous_amount=nil)
@donation = RecurringDonation.find(donation_id).donation
@nonprofit = @donation.nonprofit
reply_to = @nonprofit.email.blank? ? @nonprofit.users.first.email : @nonprofit.email
if @nonprofit.miscellaneous_np_info && ActionView::Base.full_sanitizer.sanitize(@nonprofit.miscellaneous_np_info.change_amount_message).present?
@thank_you_note = @nonprofit.miscellaneous_np_info.change_amount_message
else
@thank_you_note = nil
end
from = Format::Name.email_from_np(@nonprofit.name)
@previous_amount = previous_amount
mail(to: @donation.supporter.email, from: from, reply_to: reply_to, subject: "Recurring donation amount changed for #{@nonprofit.name}")
end
end