Class: RailsDrips::UnarchiveCampaign

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

Class Method Summary collapse

Class Method Details

.call(campaign:) ⇒ Object



5
6
7
8
9
10
11
12
# File 'app/services/rails_drips/unarchive_campaign.rb', line 5

def self.call(campaign:)
  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: :invalid_transition, campaign: campaign) unless campaign.archived?

  campaign.update!(status: :draft, current_version: nil)
  Result.new(status: :unarchived, campaign: campaign)
end