Class: Decidim::Admin::NewsletterJob
- Inherits:
-
ApplicationJob
- Object
- ActiveJob::Base
- ApplicationJob
- Decidim::Admin::NewsletterJob
- Defined in:
- app/jobs/decidim/admin/newsletter_job.rb
Overview
Custom ApplicationJob scoped to the admin panel.
Instance Method Summary collapse
Instance Method Details
#perform(newsletter, form, recipients_ids) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'app/jobs/decidim/admin/newsletter_job.rb', line 10 def perform(, form, recipients_ids) @newsletter = @form = form @recipients_ids = recipients_ids @newsletter.with_lock do raise "Newsletter already sent" if @newsletter.sent? @newsletter.update!( sent_at: Time.current, extended_data: extended_data, total_recipients: recipients.count, total_deliveries: 0 ) end recipients.find_each do |user| NewsletterDeliveryJob.perform_later(user, @newsletter) end end |