0
0
Fork 0

Refactor all ActivityPub deliveries to be serialized and signed through one concern (#10966)

This commit is contained in:
Eugen Rochko 2019-06-04 23:11:18 +02:00 committed by GitHub
parent 48fee1a800
commit f2b743e715
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
24 changed files with 79 additions and 153 deletions

View file

@ -2,6 +2,7 @@
class ActivityPub::DistributePollUpdateWorker
include Sidekiq::Worker
include Payloadable
sidekiq_options queue: 'push', unique: :until_executed, retry: 0
@ -41,20 +42,8 @@ class ActivityPub::DistributePollUpdateWorker
@inboxes
end
def signed_payload
Oj.dump(ActivityPub::LinkedDataSignature.new(unsigned_payload).sign!(@account))
end
def unsigned_payload
ActiveModelSerializers::SerializableResource.new(
@status,
serializer: ActivityPub::UpdatePollSerializer,
adapter: ActivityPub::Adapter
).as_json
end
def payload
@payload ||= @status.distributable? ? signed_payload : Oj.dump(unsigned_payload)
@payload ||= Oj.dump(serialize_payload(@status, ActivityPub::UpdatePollSerializer, signer: @account))
end
def relay!

View file

@ -2,6 +2,7 @@
class ActivityPub::DistributionWorker
include Sidekiq::Worker
include Payloadable
sidekiq_options queue: 'push'
@ -41,20 +42,8 @@ class ActivityPub::DistributionWorker
end
end
def signed_payload
Oj.dump(ActivityPub::LinkedDataSignature.new(unsigned_payload).sign!(@account))
end
def unsigned_payload
ActiveModelSerializers::SerializableResource.new(
@status,
serializer: ActivityPub::ActivitySerializer,
adapter: ActivityPub::Adapter
).as_json
end
def payload
@payload ||= @status.distributable? ? signed_payload : Oj.dump(unsigned_payload)
@payload ||= Oj.dump(serialize_payload(@status, ActivityPub::ActivitySerializer, signer: @account))
end
def relay!

View file

@ -5,6 +5,7 @@
class ActivityPub::ReplyDistributionWorker
include Sidekiq::Worker
include Payloadable
sidekiq_options queue: 'push'
@ -27,19 +28,7 @@ class ActivityPub::ReplyDistributionWorker
@inboxes ||= @account.followers.inboxes
end
def signed_payload
Oj.dump(ActivityPub::LinkedDataSignature.new(unsigned_payload).sign!(@status.account))
end
def unsigned_payload
ActiveModelSerializers::SerializableResource.new(
@status,
serializer: ActivityPub::ActivitySerializer,
adapter: ActivityPub::Adapter
).as_json
end
def payload
@payload ||= @status.distributable? ? signed_payload : Oj.dump(unsigned_payload)
@payload ||= Oj.dump(serialize_payload(@status, ActivityPub::ActivitySerializer, signer: @status.account))
end
end

View file

@ -2,6 +2,7 @@
class ActivityPub::UpdateDistributionWorker
include Sidekiq::Worker
include Payloadable
sidekiq_options queue: 'push'
@ -27,14 +28,6 @@ class ActivityPub::UpdateDistributionWorker
end
def signed_payload
@signed_payload ||= Oj.dump(ActivityPub::LinkedDataSignature.new(payload).sign!(@account, sign_with: @options[:sign_with]))
end
def payload
@payload ||= ActiveModelSerializers::SerializableResource.new(
@account,
serializer: ActivityPub::UpdateSerializer,
adapter: ActivityPub::Adapter
).as_json
@signed_payload ||= Oj.dump(serialize_payload(@account, ActivityPub::UpdateSerializer, signer: @account, sign_with: @options[:sign_with]))
end
end