diff --git a/app/models/activity_pub.rb b/app/models/activity_pub.rb index 902924b6..7e5bcabe 100644 --- a/app/models/activity_pub.rb +++ b/app/models/activity_pub.rb @@ -38,8 +38,10 @@ class ActivityPub < ApplicationRecord event :remove do transitions to: :removed + # @todo Es posible que haya un ActivityPub::FetchJob pendiente + # cuando estamos haciendo esto, que rellene el objeto después. before do - object.update(content: {}) + object.update(content: {}) unless object.content.empty? end end diff --git a/app/models/activity_pub/activity/undo.rb b/app/models/activity_pub/activity/undo.rb index 41fb5e51..4b6a5a4c 100644 --- a/app/models/activity_pub/activity/undo.rb +++ b/app/models/activity_pub/activity/undo.rb @@ -7,6 +7,18 @@ class ActivityPub class Activity class Undo < ActivityPub::Activity + # Una actividad de deshacer tiene anidada como objeto la actividad + # a deshacer. Para respetar la voluntad de le actore remote, + # tendríamos que eliminar cualquier actividad pendiente sobre el + # objeto. + # + # Sin embargo, estas acciones nunca deberían llegar a nuestra + # Inbox. + # + # @see {https://github.com/hyphacoop/social.distributed.press/issues/43} + def update_activity_pub_state! + activity_pub.remove! + end end end end