discourse/app/serializers/directory_item_serializer.rb
2023-01-09 14:14:59 +00:00

47 lines
917 B
Ruby

# frozen_string_literal: true
class DirectoryItemSerializer < ApplicationSerializer
class UserSerializer < UserNameSerializer
include UserPrimaryGroupMixin
attributes :user_fields
def user_fields
fields = {}
object.user_custom_fields.each do |cuf|
user_field_id = @options[:user_custom_field_map][cuf.name]
fields[user_field_id] = cuf.value if user_field_id
end
fields
end
def include_user_fields?
@options[:user_custom_field_map].present?
end
end
has_one :user, embed: :objects, serializer: UserSerializer
attributes :id
def id
object.user_id
end
private
def attributes
hash = super
@options[:attributes].each { |attr| hash.merge!("#{attr}": object[attr]) }
if object.period_type == DirectoryItem.period_types[:all]
hash.merge!(time_read: object.user_stat.time_read)
end
hash
end
end