fedibird-fe/app/serializers/activitypub/undo_announce_serializer.rb
2022-05-11 00:48:03 +09:00

36 lines
790 B
Ruby

# frozen_string_literal: true
class ActivityPub::UndoAnnounceSerializer < ActivityPub::Serializer
attributes :id, :type, :actor, :to
attribute :expiry, if: -> { expiry? }
has_one :virtual_object, key: :object, serializer: ActivityPub::ActivitySerializer
def id
[ActivityPub::TagManager.instance.uri_for(object.account), '#announces/', object.id, '/undo'].join
end
def type
'Undo'
end
def actor
ActivityPub::TagManager.instance.uri_for(object.account)
end
def to
[ActivityPub::TagManager::COLLECTIONS[:public]]
end
def virtual_object
ActivityPub::ActivityPresenter.from_status(object)
end
def expiry?
instance_options && instance_options[:expiry].present?
end
def expiry
instance_options[:expiry].expiry.iso8601
end
end