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

50 lines
954 B
Ruby

# frozen_string_literal: true
class ActivityPub::DeleteSerializer < ActivityPub::Serializer
class TombstoneSerializer < ActivityPub::Serializer
context_extensions :atom_uri
attributes :id, :type, :atom_uri
def id
ActivityPub::TagManager.instance.uri_for(object)
end
def type
'Tombstone'
end
def atom_uri
OStatus::TagManager.instance.uri_for(object)
end
end
attributes :id, :type, :actor, :to
attribute :expiry, if: -> { expiry? }
has_one :object, serializer: TombstoneSerializer
def id
[ActivityPub::TagManager.instance.uri_for(object), '#delete'].join
end
def type
'Delete'
end
def actor
ActivityPub::TagManager.instance.uri_for(object.account)
end
def to
[ActivityPub::TagManager::COLLECTIONS[:public]]
end
def expiry?
instance_options && instance_options[:expiry].present?
end
def expiry
instance_options[:expiry].iso8601
end
end