Use Tombstone and _:atomUri in Delete activities as fallback (#4704)

th-downstream
Eugen Rochko 7 years ago committed by GitHub
parent 6025762ba2
commit b2e1379427

@ -3,6 +3,7 @@
class ActivityPub::Activity::Delete < ActivityPub::Activity
def perform
status = Status.find_by(uri: object_uri, account: @account)
status ||= Status.find_by(uri: @object['_:atomUri'], account: @account) if @object.is_a?(Hash) && @object['_:atomUri'].present?
if status.nil?
delete_later!(object_uri)

@ -1,8 +1,26 @@
# frozen_string_literal: true
class ActivityPub::DeleteSerializer < ActiveModel::Serializer
class TombstoneSerializer < ActiveModel::Serializer
attributes :id, :type
attribute :atom_uri, key: '_:atomUri'
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
attribute :virtual_object, key: :object
has_one :object, serializer: TombstoneSerializer
def id
[ActivityPub::TagManager.instance.uri_for(object), '#delete'].join
@ -15,8 +33,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

Loading…
Cancel
Save