Add Ticket Creation Notifications for Nonprofits

This commit is contained in:
Eric Schultz 2019-11-07 14:51:09 -06:00
parent 1fa53e65f2
commit 4b8bb49d76
6 changed files with 5 additions and 38 deletions

View file

@ -1,7 +1,8 @@
class TicketCreateJob < ApplicationJob
queue_as :default
def perform(ticket_ids, charge)
TicketMailer.followup(ticket_ids, charge_id).deliver_now
def perform(ticket_ids, charge, user=nil)
TicketMailer.followup(ticket_ids, charge_id).deliver_later
TicketMailer.receipt_admin(ticket_ids, user.id).deliver_later
end
end

View file

@ -9,7 +9,7 @@ class PaymentMailer < BaseMailer
if payment.kind == 'Donation' || payment.kind == 'RecurringDonation'
PaymentNotificationEmailNonprofitJob.perform_later(payment.donation, User.find(user_id))
elsif payment.kind == 'Ticket'
return TicketMailer.receipt_admin(payment.donation.id, user_id).deliver
return TicketMailer.receipt_admin(payment.donation.id, user_id).deliver_later
end
end
@ -20,7 +20,7 @@ class PaymentMailer < BaseMailer
if payment.kind == 'Donation' || payment.kind == 'RecurringDonation'
PaymentNotificationEmailDonorJob.perform_later payment.donation
elsif payment.kind == 'Ticket'
return TicketMailer.followup(payment.tickets.pluck(:id), payment.charge.id).deliver
return TicketMailer.followup(payment.tickets.pluck(:id), payment.charge).deliver_later
end
end
end

View file

@ -101,7 +101,6 @@ module InsertTickets
charge_id = result['charge'] ? result['charge'].id : nil
TicketCreateJob.perform_later(ticket_ids, charge_id && Charge.find(result['charge']&.id))
EmailJobQueue.queue(JobTypes::TicketMailerReceiptAdminJob, ticket_ids)
result
end

View file

@ -1,17 +0,0 @@
# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
module JobTypes
class TicketMailerReceiptAdminJob < EmailJob
attr_reader :ticket_ids
def initialize(ticket_ids, user_id = nil)
@ticket_ids = ticket_ids
@user_id = user_id
end
def perform
TicketMailer.receipt_admin(@ticket_ids, @user_id).deliver
end
end
end

View file

@ -105,7 +105,6 @@ describe InsertTickets do
tickets = m.call(*args)
ticket_ids = tickets.map(&:id)
expect(InsertActivities).to receive(:for_tickets).with(ticket_ids)
expect_email_queued.with(JobTypes::TicketMailerReceiptAdminJob, ticket_ids).once
tickets
}
end

View file

@ -1,15 +0,0 @@
# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
require 'rails_helper.rb'
describe JobTypes::TicketMailerReceiptAdminJob do
describe '.perform' do
it 'calls the correct active mailer' do
expect(TicketMailer).to receive(:receipt_admin).with(1, 2).and_wrap_original { |_m, *_args| mailer = double('object'); expect(mailer).to receive(:deliver).and_return(nil); mailer }
job = JobTypes::TicketMailerReceiptAdminJob.new(1, 2)
job.perform
end
end
end