You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
798 B
39 lines
798 B
# frozen_string_literal: true
|
|
|
|
class REST::TranslationSerializer < ActiveModel::Serializer
|
|
attributes :detected_source_language, :language, :provider, :spoiler_text, :content
|
|
|
|
class PollSerializer < ActiveModel::Serializer
|
|
attribute :id
|
|
has_many :options
|
|
|
|
def id
|
|
object.status.preloadable_poll.id.to_s
|
|
end
|
|
|
|
def options
|
|
object.poll_options
|
|
end
|
|
|
|
class OptionSerializer < ActiveModel::Serializer
|
|
attributes :title
|
|
end
|
|
end
|
|
|
|
has_one :poll, serializer: PollSerializer
|
|
|
|
class MediaAttachmentSerializer < ActiveModel::Serializer
|
|
attributes :id, :description
|
|
|
|
def id
|
|
object.id.to_s
|
|
end
|
|
end
|
|
|
|
has_many :media_attachments, serializer: MediaAttachmentSerializer
|
|
|
|
def poll
|
|
object if object.status.preloadable_poll
|
|
end
|
|
end
|