class Moist::SubscriptionManager
Attributes
action[R]
subscriber[R]
user[R]
Public Class Methods
new(subscriber, user:, action:)
click to toggle source
# File lib/moist/subscription_manager.rb, line 4 def initialize(subscriber, user:, action:) @subscriber = subscriber @user = user @action = action end
Public Instance Methods
call(*campaign_slugs)
click to toggle source
# File lib/moist/subscription_manager.rb, line 10 def call(*campaign_slugs) campaign_slugs.map do |campaign_slug| campaign = ::Moist::Campaign[campaign_slug] if @action == :subscribe ::Moist::CampaignSubscriber.first_or_create!(subscriber: subscriber, user: user, moist_campaign: campaign) elsif @action == :unsubscribe sub = ::Moist::CampaignSubscriber.find_by!(subscriber: subscriber, user: user, moist_campaign: campaign) sub.destroy! sub end end end