Module: SuggestedTopicsMixin
- Included in:
- TopicViewPostsSerializer, TopicViewSerializer
- Defined in:
- app/serializers/suggested_topics_mixin.rb
Class Method Summary collapse
Instance Method Summary collapse
- #include_related_messages? ⇒ Boolean
- #include_suggested_group_name? ⇒ Boolean
- #include_suggested_topics? ⇒ Boolean
- #related_messages ⇒ Object
- #suggested_group_name ⇒ Object
- #suggested_topics ⇒ Object
Class Method Details
.included(klass) ⇒ Object
4 5 6 7 8 |
# File 'app/serializers/suggested_topics_mixin.rb', line 4 def self.included(klass) klass.attributes :related_messages klass.attributes :suggested_topics klass.attributes :suggested_group_name end |
Instance Method Details
#include_related_messages? ⇒ Boolean
10 11 12 |
# File 'app/serializers/suggested_topics_mixin.rb', line 10 def object.&.topics end |
#include_suggested_group_name? ⇒ Boolean
18 19 20 21 |
# File 'app/serializers/suggested_topics_mixin.rb', line 18 def include_suggested_group_name? return false unless include_suggested_topics? object.topic. && scope.user end |
#include_suggested_topics? ⇒ Boolean
14 15 16 |
# File 'app/serializers/suggested_topics_mixin.rb', line 14 def include_suggested_topics? object.suggested_topics&.topics end |
#related_messages ⇒ Object
38 39 40 41 42 |
# File 'app/serializers/suggested_topics_mixin.rb', line 38 def object..topics.map do |t| SuggestedTopicSerializer.new(t, scope: scope, root: false) end end |
#suggested_group_name ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'app/serializers/suggested_topics_mixin.rb', line 23 def suggested_group_name return if object.topic.topic_allowed_users.exists?(user_id: scope.user.id) if object.topic_allowed_group_ids.present? Group .joins(:group_users) .where( "group_users.group_id IN (?) AND group_users.user_id = ?", object.topic_allowed_group_ids, scope.user.id, ) .pick(:name) end end |
#suggested_topics ⇒ Object
44 45 46 47 48 |
# File 'app/serializers/suggested_topics_mixin.rb', line 44 def suggested_topics object.suggested_topics.topics.map do |t| SuggestedTopicSerializer.new(t, scope: scope, root: false) end end |