chinwagsocial/app/workers/activitypub/status_update_distribution_worker.rb
Claire da91b18a8b
Fix NoMethodError in StatusUpdateDistributionWorker (#17499)
* Add tests

* Fix NoMethodError in StatusUpdateDistributionWorker

* Fix tests
2022-02-10 14:57:10 +01:00

30 lines
900 B
Ruby

# frozen_string_literal: true
class ActivityPub::StatusUpdateDistributionWorker < ActivityPub::DistributionWorker
# Distribute an profile update to servers that might have a copy
# of the account in question
def perform(status_id, options = {})
@options = options.with_indifferent_access
@status = Status.find(status_id)
@account = @status.account
distribute!
rescue ActiveRecord::RecordNotFound
true
end
protected
def activity
ActivityPub::ActivityPresenter.new(
id: [ActivityPub::TagManager.instance.uri_for(@status), '#updates/', @status.edited_at.to_i].join,
type: 'Update',
actor: ActivityPub::TagManager.instance.uri_for(@status.account),
published: @status.edited_at,
to: ActivityPub::TagManager.instance.to(@status),
cc: ActivityPub::TagManager.instance.cc(@status),
virtual_object: @status
)
end
end