5
6
7
8
9
10
11
12
13
14
|
# File 'app/services/rails_drips/enqueue_due_deliveries.rb', line 5
def self.call(campaign: nil, dry_run: false)
campaign = Campaign.find_by(key: campaign.to_s) unless campaign.nil? || campaign.is_a?(Campaign)
scope = Delivery.due.joins(:enrollment).merge(Enrollment.status_active)
scope = scope.where(rails_drips_enrollments: { campaign_id: campaign.id }) if campaign
ids = scope.pluck(:id)
unless dry_run
ids.each { |id| RailsDrips.configuration.delivery_job.perform_later(id) }
end
Result.new(status: dry_run ? :dry_run : :enqueued, campaign: campaign, count: ids.length)
end
|