119 lines
4.9 KiB
Ruby
119 lines
4.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
|
|
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
|
|
class NonprofitMailer < BaseMailer
|
|
def failed_verification_notice(np)
|
|
@nonprofit = np
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_payouts')
|
|
mail(to: @emails, subject: "We need some further account verification on #{Houdini.general.name}")
|
|
end
|
|
|
|
def successful_verification_notice(np)
|
|
@nonprofit = np
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_payouts')
|
|
mail(to: @emails, subject: "Verification successful on #{Houdini.general.name}!")
|
|
end
|
|
|
|
def refund_notification(refund_id)
|
|
@refund = Refund.find(refund_id)
|
|
@charge = @refund.charge
|
|
@nonprofit = @refund.payment.nonprofit
|
|
@supporter = @refund.payment.supporter
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_payments')
|
|
mail(to: @emails, subject: "A new refund has been made for $#{Format::Currency.cents_to_dollars(@refund.amount)}")
|
|
end
|
|
|
|
def new_bank_account_notification(ba)
|
|
@nonprofit = ba.nonprofit
|
|
@bank_account = ba
|
|
@emails = QueryUsers.all_nonprofit_user_emails(@nonprofit.id)
|
|
mail(to: @emails, subject: 'We need to confirm the new bank account')
|
|
end
|
|
|
|
def pending_payout_notification(payout_id)
|
|
@payout = Payout.find(payout_id)
|
|
@nonprofit = @payout.nonprofit
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_payouts')
|
|
mail(to: @emails, subject: 'Payout of available balance now pending')
|
|
end
|
|
|
|
def successful_payout_notification(payout)
|
|
@nonprofit = payout.nonprofit
|
|
@payout = payout
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_payouts')
|
|
mail(to: @emails, subject: 'Payout of available balance succeeded')
|
|
end
|
|
|
|
def failed_payout_notification(payout)
|
|
@nonprofit = payout.nonprofit
|
|
@payout = payout
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_payouts')
|
|
mail(to: @emails, subject: 'Payout could not be completed')
|
|
end
|
|
|
|
def failed_recurring_donation(recurring_donation)
|
|
@recurring_donation = recurring_donation
|
|
@nonprofit = recurring_donation.nonprofit
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_recurring_donations')
|
|
mail(to: @emails, subject: 'A recurring donation from one of your supporters had a payment failure.')
|
|
end
|
|
|
|
def cancelled_recurring_donation(recurring_donation)
|
|
@recurring_donation = recurring_donation
|
|
@nonprofit = recurring_donation.nonprofit
|
|
@emails = QueryUsers.nonprofit_user_emails(@nonprofit.id, 'notify_recurring_donations')
|
|
mail(to: @emails, subject: 'A recurring donation from one of your supporters was cancelled.')
|
|
end
|
|
|
|
def verified_notification(nonprofit)
|
|
@nonprofit = nonprofit
|
|
@emails = QueryUsers.all_nonprofit_user_emails(@nonprofit.id)
|
|
mail(to: @emails, subject: 'Your nonprofit has been verified!')
|
|
end
|
|
|
|
def button_code(nonprofit, to_email, to_name, from_email, message, code)
|
|
@nonprofit = nonprofit
|
|
@to_email = to_email
|
|
@to_name = to_name
|
|
@from = from_email
|
|
@message = message
|
|
@code = code
|
|
from = Format::Name.email_from_np(@nonprofit.name)
|
|
mail(to: to_email, from: from, reply_to: from_email, subject: 'Please include this donate button code on the website')
|
|
end
|
|
|
|
def invoice_payment_notification(nonprofit_id, payment)
|
|
@nonprofit = Nonprofit.find(nonprofit_id)
|
|
@payment = payment
|
|
@emails = QueryUsers.all_nonprofit_user_emails(@nonprofit.id, [:nonprofit_admin])
|
|
@month_name = Date::MONTHNAMES[payment.date.month]
|
|
mail(to: @emails, subject: "#{Houdini.general.name} Subscription Receipt for #{@month_name}")
|
|
end
|
|
|
|
# pass in all of:
|
|
# {is_unsubscribed_from_emails, supporter_email, message, email_unsubscribe_uuid, nonprofit_id, from_email, subject}
|
|
def supporter_message(args)
|
|
return if args[:is_unsubscribed_from_emails] || args[:supporter_email].blank?
|
|
|
|
@message = args[:message]
|
|
@uuid = args[:email_unsubscribe_uuid]
|
|
@nonprofit = Nonprofit.find args[:nonprofit_id]
|
|
from = Format::Name.email_from_np(@nonprofit.name)
|
|
mail(to: args[:supporter_email], reply_to: args[:from_email], from: from, subject: args[:subject])
|
|
end
|
|
|
|
def setup_verification(np_id)
|
|
@nonprofit = Nonprofit.find(np_id)
|
|
@emails = QueryUsers.all_nonprofit_user_emails(np_id, [:nonprofit_admin])
|
|
mail(to: @emails, reply_to: 'support@commitchange.com', from: "#{Houdini.general.name} Support", subject: "Set up automatic payouts on #{Houdini.general.name}")
|
|
end
|
|
|
|
def welcome(np_id)
|
|
@nonprofit = Nonprofit.find(np_id)
|
|
@user = @nonprofit.users.first
|
|
@token = @user.make_confirmation_token!
|
|
@emails = QueryUsers.all_nonprofit_user_emails(np_id, [:nonprofit_admin])
|
|
mail(to: @emails, reply_to: 'support@commitchange.com', from: "#{Houdini.general.name} Support", subject: "A hearty welcome from the #{Houdini.general.name} team")
|
|
end
|
|
end
|