Sha256: e6092cdcb5706511c74ea9bb0a9b8499c39cc21f02591451484a712be153c055
Contents?: true
Size: 775 Bytes
Versions: 4
Compression:
Stored size: 775 Bytes
Contents
# frozen_string_literal: true module Decidim module Admin # Custom ApplicationJob scoped to the admin panel. # class NewsletterJob < ApplicationJob queue_as :newsletter def perform(newsletter) newsletter.with_lock do raise "Newsletter already sent" if newsletter.sent? newsletter.update_attributes!( sent_at: Time.current, total_recipients: recipients.count, total_deliveries: 0 ) end recipients.find_each do |user| NewsletterDeliveryJob.perform_later(user, newsletter) end end private def recipients @recipients ||= User.where(newsletter_notifications: true).where.not(email: nil) end end end end
Version data entries
4 entries across 4 versions & 2 rubygems