Sha256: 9ab05b25835d29882f6aad0f9e443987c3cdd854545780975f1eeb23b035da55

Contents?: true

Size: 939 Bytes

Versions: 2

Compression:

Stored size: 939 Bytes

Contents

module CatarseMonkeymail::UserConcern
  extend ActiveSupport::Concern

  included do

    before_save do
      if self.newsletter_changed? && self.newsletter
        return subscribe_to_newsletter_list
      end

      if self.newsletter && self.email_changed? && !self.new_record?
        unsubscribe_from_newsletter_list self.email_was
        return subscribe_to_newsletter_list
      end

      if self.newsletter_changed? && !self.newsletter
        return unsubscribe_from_newsletter_list
      end
    end

    def mailchimp
      @mailchimp ||= ::CatarseMonkeymail::MailchimpApi.start
    end

    def subscribe_to_newsletter_list
      mailchimp.list.subscribe ::CatarseSettings[:mailchimp_list_id], { email: self.email }, { name: self.name }
    end

    def unsubscribe_from_newsletter_list email_arg = self.email
      mailchimp.list.unsubscribe ::CatarseMonkeymail[:mailchimp_list_id], { email: email_arg }
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
catarse_monkeymail-0.0.2 app/models/catarse_monkeymail/user_concern.rb
catarse_monkeymail-0.0.1 app/models/catarse_monkeymail/user_concern.rb