diff options
Diffstat (limited to 'app/serializers/activitypub/delete_serializer.rb')
-rw-r--r-- | app/serializers/activitypub/delete_serializer.rb | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/app/serializers/activitypub/delete_serializer.rb b/app/serializers/activitypub/delete_serializer.rb index 77098b1b0..87a43b95d 100644 --- a/app/serializers/activitypub/delete_serializer.rb +++ b/app/serializers/activitypub/delete_serializer.rb @@ -1,8 +1,29 @@ # frozen_string_literal: true class ActivityPub::DeleteSerializer < ActiveModel::Serializer - attributes :type, :actor - attribute :virtual_object, key: :object + class TombstoneSerializer < ActiveModel::Serializer + attributes :id, :type, :atom_uri + + def id + ActivityPub::TagManager.instance.uri_for(object) + end + + def type + 'Tombstone' + end + + def atom_uri + ::TagManager.instance.uri_for(object) + end + end + + attributes :id, :type, :actor + + has_one :object, serializer: TombstoneSerializer + + def id + [ActivityPub::TagManager.instance.uri_for(object), '#delete'].join + end def type 'Delete' @@ -11,8 +32,4 @@ class ActivityPub::DeleteSerializer < ActiveModel::Serializer def actor ActivityPub::TagManager.instance.uri_for(object.account) end - - def virtual_object - ActivityPub::TagManager.instance.uri_for(object) - end end |