Module: WithDiscussionCreation::Subscription
- Extended by:
- ActiveSupport::Concern
- Defined in:
- app/models/concerns/with_discussion_creation/subscription.rb
Instance Method Summary collapse
- #subscribe_to!(discussion) ⇒ Object
- #subscribed_to?(discussion) ⇒ Boolean
- #subscriptions_in_organization ⇒ Object
- #toggle_subscription!(discussion) ⇒ Object
- #unread_discussions ⇒ Object
- #unsubscribe_to!(discussion) ⇒ Object
Instance Method Details
#subscribe_to!(discussion) ⇒ Object
18 19 20 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 18 def subscribe_to!(discussion) watched_discussions << discussion unless subscribed_to? discussion end |
#subscribed_to?(discussion) ⇒ Boolean
14 15 16 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 14 def subscribed_to?(discussion) discussion.subscription_for(self).present? end |
#subscriptions_in_organization ⇒ Object
10 11 12 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 10 def subscriptions_in_organization subscriptions.joins(:discussion).where(discussion: discussions_in_organization) end |
#toggle_subscription!(discussion) ⇒ Object
26 27 28 29 30 31 32 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 26 def toggle_subscription!(discussion) if subscribed_to?(discussion) unsubscribe_to!(discussion) else subscribe_to!(discussion) end end |
#unread_discussions ⇒ Object
34 35 36 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 34 def unread_discussions subscriptions_in_organization.where(read: false).map(&:discussion) end |
#unsubscribe_to!(discussion) ⇒ Object
22 23 24 |
# File 'app/models/concerns/with_discussion_creation/subscription.rb', line 22 def unsubscribe_to!(discussion) watched_discussions.delete(discussion) end |