mirror of https://github.com/docusealco/docuseal
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
777 B
30 lines
777 B
# 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.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 = SubmitterMailer.invitation_email(submitter)
|
|
|
|
Submitters::ValidateSending.call(submitter, mail)
|
|
|
|
mail.deliver_now!
|
|
|
|
SubmissionEvent.create!(submitter:, event_type: 'send_email')
|
|
|
|
submitter.sent_at ||= Time.current
|
|
submitter.save!
|
|
end
|
|
end
|