206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
# File 'lib/rails_onboarding/background_jobs.rb', line 206
def perform(user_id, email_type)
unless RailsOnboarding.action_mailer_configured?
Rails.logger.warn "RailsOnboarding: ActionMailer not configured, skipping email"
return
end
user = find_user(user_id)
return unless user
case email_type.to_sym
when :welcome
OnboardingMailer.welcome_email(user).deliver_now
when :reminder
OnboardingMailer.reminder_email(user).deliver_now unless user.onboarding_completed?
when :completion
OnboardingMailer.completion_email(user).deliver_now
when :step_completed
OnboardingMailer.step_completed_email(user).deliver_now
else
Rails.logger.warn "Unknown email type: #{email_type}"
end
rescue StandardError => e
Rails.logger.error "Failed to send onboarding email: #{e.message}"
raise e if should_retry?
end
|