46 lines
902 B
Ruby
46 lines
902 B
Ruby
# frozen_string_literal: true
|
|
|
|
class ActivityPub::EmojiSerializer < ActivityPub::Serializer
|
|
include RoutingHelper
|
|
|
|
context_extensions :emoji, :license, :keywords, :misskey_license
|
|
|
|
attributes :id, :type, :name, :keywords, :is_sensitive, :updated
|
|
|
|
attribute :license, if: :license?
|
|
has_one :misskey_license, key: :_misskey_license, if: :license?, serializer: ActivityPub::MisskeyEmojiLicenseSerializer
|
|
|
|
has_one :icon, serializer: ActivityPub::ImageSerializer
|
|
|
|
def id
|
|
ActivityPub::TagManager.instance.uri_for(object)
|
|
end
|
|
|
|
def type
|
|
'Emoji'
|
|
end
|
|
|
|
def keywords
|
|
object.aliases
|
|
end
|
|
|
|
def icon
|
|
object.image
|
|
end
|
|
|
|
def updated
|
|
object.updated_at.iso8601
|
|
end
|
|
|
|
def name
|
|
":#{object.shortcode}:"
|
|
end
|
|
|
|
def misskey_license
|
|
ActivityPub::MisskeyEmojiLicensePresenter.new(free_text: object.license)
|
|
end
|
|
|
|
def license?
|
|
object.license.present?
|
|
end
|
|
end
|