# 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