2025-08-13 14:25:48 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
|
|
class Users::MailerSendingJob < ApplicationJob
|
|
|
|
|
queue_as :mailers
|
|
|
|
|
|
|
|
|
|
def perform(user_id, email_type, **options)
|
|
|
|
|
user = User.find(user_id)
|
|
|
|
|
|
2025-08-19 12:55:22 -04:00
|
|
|
if trial_related_email?(email_type) && user.active?
|
|
|
|
|
Rails.logger.info "Skipping #{email_type} email for user #{user_id} - user is already subscribed"
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
|
2025-08-13 14:25:48 -04:00
|
|
|
params = { user: user }.merge(options)
|
|
|
|
|
|
|
|
|
|
UsersMailer.with(params).public_send(email_type).deliver_later
|
|
|
|
|
end
|
2025-08-19 12:55:22 -04:00
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
def trial_related_email?(email_type)
|
|
|
|
|
%w[trial_expires_soon trial_expired].include?(email_type.to_s)
|
|
|
|
|
end
|
2025-08-13 14:25:48 -04:00
|
|
|
end
|