Class: RailsDrips::ResumeCampaign

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

Class Method Summary collapse

Class Method Details

.call(campaign:, actor: nil) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
# File 'app/services/rails_drips/resume_campaign.rb', line 5

def self.call(campaign:, actor: nil)
  campaign = campaign.is_a?(Campaign) ? campaign : Campaign.find_by(key: campaign.to_s)
  return Result.new(status: :campaign_not_found) unless campaign
  return Result.new(status: :already_active, campaign: campaign) if campaign.active?
  return Result.new(status: :invalid_transition, campaign: campaign) unless campaign.paused?

  campaign.update!(status: :active)
  EnqueueDueDeliveries.call(campaign: campaign)
  Instrumentation.instrument("campaign.resumed", campaign_id: campaign.id, actor_type: actor&.class&.name)
  Result.new(status: :resumed, campaign: campaign)
end