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

Version Path
mumuki-domain-9.23.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.22.1 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.22.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.21.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.20.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.19.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.18.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.17.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.16.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.15.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.14.1 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.14.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.13.1 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.13.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.12.0 app/models/concerns/with_discussion_creation/subscription.rb
mumuki-domain-9.11.0 app/models/concerns/with_discussion_creation/subscription.rb