Class: RailsDrips::ScheduleDeliveries

Inherits:
Object
  • Object
show all
Defined in:
app/services/rails_drips/schedule_deliveries.rb

Class Method Summary collapse

Class Method Details

.call(enrollment:, recipient_email:) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/services/rails_drips/schedule_deliveries.rb', line 5

def self.call(enrollment:, recipient_email:)
  scheduled_for = enrollment.enrolled_at

  enrollment.campaign_version.steps.order(:position).map do |step|
    scheduled_for += step.delay_duration
    enrollment.deliveries.create!(
      step: step,
      recipient: enrollment.recipient,
      recipient_email: recipient_email,
      scheduled_for: scheduled_for,
      campaign_key: enrollment.campaign.key,
      email_key: step.email_key,
      email_category: step.resolved_email_category,
      data: { "step_position" => step.position, "version_number" => enrollment.campaign_version.version_number }
    )
  end
end