|
|
|
@ -3,6 +3,9 @@
|
|
|
|
class ProcessSubmitterCompletionJob
|
|
|
|
class ProcessSubmitterCompletionJob
|
|
|
|
include Sidekiq::Job
|
|
|
|
include Sidekiq::Job
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BCC_LIMIT = 14
|
|
|
|
|
|
|
|
TooManyBcc = Class.new(StandardError)
|
|
|
|
|
|
|
|
|
|
|
|
def perform(params = {})
|
|
|
|
def perform(params = {})
|
|
|
|
submitter = Submitter.find(params['submitter_id'])
|
|
|
|
submitter = Submitter.find(params['submitter_id'])
|
|
|
|
submission = submitter.submission
|
|
|
|
submission = submitter.submission
|
|
|
|
@ -133,16 +136,24 @@ class ProcessSubmitterCompletionJob
|
|
|
|
true
|
|
|
|
true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
build_bcc_addresses(submission).each do |to|
|
|
|
|
enqueue_bcc_completed_emails(submitter, user, is_sent_to_user)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
maybe_enqueue_copy_emails(submitter)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def enqueue_bcc_completed_emails(submitter, user, is_sent_to_user)
|
|
|
|
|
|
|
|
bcc_addresses = build_bcc_addresses(submitter.submission)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
raise TooManyBcc, submitter.account_id if Docuseal.multitenant? && bcc_addresses.size > BCC_LIMIT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bcc_addresses.each do |to|
|
|
|
|
next if is_sent_to_user && to == user.email
|
|
|
|
next if is_sent_to_user && to == user.email
|
|
|
|
|
|
|
|
|
|
|
|
SubmitterMailer.completed_email(submitter, user, to:).deliver_later!
|
|
|
|
SubmitterMailer.completed_email(submitter, user, to:).deliver_later!
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
maybe_enqueue_copy_emails(submitter)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def maybe_enqueue_copy_emails(submitter)
|
|
|
|
def maybe_enqueue_copy_emails(submitter)
|
|
|
|
return if submitter.template&.preferences&.dig('documents_copy_email_enabled') == false
|
|
|
|
return if submitter.template&.preferences&.dig('documents_copy_email_enabled') == false
|
|
|
|
|
|
|
|
|
|
|
|
|