Module: Mailkick::Model

Defined in:
lib/mailkick/model.rb

Instance Method Summary collapse

Instance Method Details

#has_subscriptionsObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/mailkick/model.rb', line 3

def has_subscriptions
  class_eval do
    has_many :mailkick_subscriptions, class_name: "Mailkick::Subscription", as: :subscriber
    scope :subscribed, -> (list) { joins(:mailkick_subscriptions).where(mailkick_subscriptions: {list: list}) }

    def subscribe(list)
      mailkick_subscriptions.where(list: list).first_or_create!
      nil
    end

    def unsubscribe(list)
      mailkick_subscriptions.where(list: list).delete_all
      nil
    end

    def subscribed?(list)
      mailkick_subscriptions.where(list: list).exists?
    end
  end
end