nas/app/serializers/activitypub/emoji_serializer.rb
2025-01-23 18:50:38 +09:00

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