Sha256: e83b7126e5f271e5a0b80ecedc8be68bc66838d8e8cd67cf7e42f21a9fa7ebb2
Contents?: true
Size: 938 Bytes
Versions: 16
Compression:
Stored size: 938 Bytes
Contents
module WithDiscussionCreation::Subscription extend ActiveSupport::Concern included do has_many :subscriptions has_many :watched_discussions, -> { order(created_at: :desc) }, through: :subscriptions, source: :discussion organic_on :watched_discussions end def subscriptions_in_organization subscriptions.where(discussion: Organization.current.discussions) end def subscribed_to?(discussion) discussion.subscription_for(self).present? end def subscribe_to!(discussion) watched_discussions << discussion unless subscribed_to? discussion end def unsubscribe_to!(discussion) watched_discussions.delete(discussion) end def toggle_subscription!(discussion) if subscribed_to?(discussion) unsubscribe_to!(discussion) else subscribe_to!(discussion) end end def unread_discussions subscriptions_in_organization.where(read: false).map(&:discussion) end end
Version data entries
16 entries across 16 versions & 1 rubygems