about summary refs log tree commit diff
path: root/app/lib/activitypub/activity/update.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/activitypub/activity/update.rb')
-rw-r--r--app/lib/activitypub/activity/update.rb11
1 files changed, 8 insertions, 3 deletions
diff --git a/app/lib/activitypub/activity/update.rb b/app/lib/activitypub/activity/update.rb
index f04ad321b..0bfead55b 100644
--- a/app/lib/activitypub/activity/update.rb
+++ b/app/lib/activitypub/activity/update.rb
@@ -22,10 +22,15 @@ class ActivityPub::Activity::Update < ActivityPub::Activity
   def update_status
     return reject_payload! if invalid_origin?(@object['id'])
 
-    status = Status.find_by(uri: object_uri, account_id: @account.id)
+    @status = Status.find_by(uri: object_uri, account_id: @account.id)
 
-    return if status.nil?
+    return if @status.nil?
 
-    ActivityPub::ProcessStatusUpdateService.new.call(status, @object)
+    forwarder.forward! if forwarder.forwardable?
+    ActivityPub::ProcessStatusUpdateService.new.call(@status, @object)
+  end
+
+  def forwarder
+    @forwarder ||= ActivityPub::Forwarder.new(@account, @json, @status)
   end
 end