Files
docuseal/app/jobs/send_submitter_invitation_email_job.rb
T
Pete Matsyburka e88874e757 view only party
2026-07-07 17:34:23 +03:00

39 lines
1.0 KiB
Ruby

# frozen_string_literal: true
class SendSubmitterInvitationEmailJob
include Sidekiq::Job
def perform(params = {})
submitter = Submitter.find(params['submitter_id'])
return if submitter.completed_at?
return if submitter.declined_at?
return if submitter.submission.archived_at?
return if submitter.submission.expired?
return if submitter.template&.archived_at?
return if submitter.submission.source == 'invite' && !Accounts.can_send_emails?(submitter.account, on_events: true)
unless Accounts.can_send_invitation_emails?(submitter.account)
Rollbar.warning("Skip email: #{submitter.account.id}") if defined?(Rollbar)
return
end
mail =
if submitter.viewer?
SubmitterMailer.invitation_view_email(submitter)
else
SubmitterMailer.invitation_email(submitter)
end
Submitters::ValidateSending.call(submitter, mail)
mail.deliver_now!
SubmissionEvent.create!(submitter:, event_type: 'send_email')
submitter.sent_at ||= Time.current
submitter.save!
end
end