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 13 |
# File 'app/serializers/suggested_topics_mixin.rb', line 10 def return false if @options[:exclude_suggested_and_related] object.next_page.nil? && object.&.topics end |
#include_suggested_group_name? ⇒ Boolean
20 21 22 23 |
# File 'app/serializers/suggested_topics_mixin.rb', line 20 def include_suggested_group_name? return false unless include_suggested_topics? object.topic. && scope.user end |
#include_suggested_topics? ⇒ Boolean
15 16 17 18 |
# File 'app/serializers/suggested_topics_mixin.rb', line 15 def include_suggested_topics? return false if @options[:exclude_suggested_and_related] object.next_page.nil? && object.suggested_topics&.topics end |
#related_messages ⇒ Object
40 41 42 43 44 |
# File 'app/serializers/suggested_topics_mixin.rb', line 40 def object..topics.map do |t| SuggestedTopicSerializer.new(t, scope: scope, root: false) end end |
#suggested_group_name ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'app/serializers/suggested_topics_mixin.rb', line 25 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
46 47 48 49 50 |
# File 'app/serializers/suggested_topics_mixin.rb', line 46 def suggested_topics object.suggested_topics.topics.map do |t| SuggestedTopicSerializer.new(t, scope: scope, root: false) end end |