discourse/app/serializers/user_summary_serializer.rb

54 lines
1.5 KiB
Ruby
Raw Normal View History

class UserSummarySerializer < ApplicationSerializer
class TopicSerializer < ApplicationSerializer
attributes :id, :created_at, :fancy_title, :slug, :like_count
end
class ReplySerializer < ApplicationSerializer
attributes :post_number, :like_count, :created_at
has_one :topic, serializer: TopicSerializer
end
class LinkSerializer < ApplicationSerializer
attributes :url, :title, :clicks, :post_number
has_one :topic, serializer: TopicSerializer
def post_number
object.post.post_number
end
end
class UserWithCountSerializer < BasicUserSerializer
attributes :count, :name
end
has_many :topics, serializer: TopicSerializer
has_many :replies, serializer: ReplySerializer, embed: :object
has_many :links, serializer: LinkSerializer, embed: :object
has_many :most_liked_by_users, serializer: UserWithCountSerializer, embed: :object
has_many :most_liked_users, serializer: UserWithCountSerializer, embed: :object
has_many :most_replied_to_users, serializer: UserWithCountSerializer, embed: :object
has_many :badges, serializer: UserBadgeSerializer, embed: :object
2016-03-30 12:05:16 -04:00
attributes :likes_given,
:likes_received,
:posts_read_count,
:days_visited,
:topic_count,
:post_count,
:time_read,
:bookmark_count
def include_badges?
SiteSetting.enable_badges
end
2016-03-30 12:05:16 -04:00
def include_bookmark_count?
scope.authenticated? && object.user_id == scope.user.id
end
2016-03-30 12:05:16 -04:00
def time_read
AgeWords.age_words(object.time_read)
end
end