* Check if email_newsletter is changed * Check if Settings::General.mailchimp_api_key is defined * Add spec for Users::NotificationSetting * Remove spec for boolean column http://www.chrisrolle.com/en/blog/boolean-attribute-validation * Check if email is set when changing newsletter subscription setting * Make it easy to read * Remove specs for a case never happening
23 lines
820 B
Ruby
23 lines
820 B
Ruby
module Users
|
|
class NotificationSetting < ApplicationRecord
|
|
self.table_name_prefix = "users_"
|
|
|
|
belongs_to :user, touch: true
|
|
|
|
validates :email_digest_periodic, inclusion: { in: [true, false] }
|
|
|
|
alias_attribute :subscribed_to_welcome_notifications?, :welcome_notifications
|
|
alias_attribute :subscribed_to_mod_roundrobin_notifications?, :mod_roundrobin_notifications
|
|
alias_attribute :subscribed_to_email_follower_notifications?, :email_follower_notifications
|
|
|
|
after_commit :subscribe_to_mailchimp_newsletter
|
|
|
|
def subscribe_to_mailchimp_newsletter
|
|
return if Settings::General.mailchimp_api_key.blank?
|
|
return unless saved_changes.key?(:email_newsletter)
|
|
return if user.email.blank?
|
|
|
|
Users::SubscribeToMailchimpNewsletterWorker.perform_async(user.id)
|
|
end
|
|
end
|
|
end
|