mirror of
https://github.com/mastodon/mastodon.git
synced 2025-09-06 18:01:05 +00:00
Inline instrument
quote post in outgoing QuoteRequest
activities (#35713)
This commit is contained in:
parent
836a2bfee0
commit
496a5f423e
|
@ -1,11 +1,22 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class ActivityPub::QuoteRequestSerializer < ActivityPub::Serializer
|
class ActivityPub::QuoteRequestSerializer < ActivityPub::Serializer
|
||||||
|
def self.serializer_for(model, options)
|
||||||
|
case model.class.name
|
||||||
|
when 'Status'
|
||||||
|
ActivityPub::NoteSerializer
|
||||||
|
else
|
||||||
|
super
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context_extensions :quote_requests
|
context_extensions :quote_requests
|
||||||
|
|
||||||
attributes :id, :type, :actor, :instrument
|
attributes :id, :type, :actor
|
||||||
attribute :virtual_object, key: :object
|
attribute :virtual_object, key: :object
|
||||||
|
|
||||||
|
has_one :instrument
|
||||||
|
|
||||||
def id
|
def id
|
||||||
object.activity_uri
|
object.activity_uri
|
||||||
end
|
end
|
||||||
|
@ -23,7 +34,6 @@ class ActivityPub::QuoteRequestSerializer < ActivityPub::Serializer
|
||||||
end
|
end
|
||||||
|
|
||||||
def instrument
|
def instrument
|
||||||
# TODO: inline object?
|
instance_options[:allow_post_inlining] && object.status.local? ? object.status : ActivityPub::TagManager.instance.uri_for(object.status)
|
||||||
ActivityPub::TagManager.instance.uri_for(object.status)
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,6 +17,6 @@ class ActivityPub::QuoteRequestWorker < ActivityPub::RawDistributionWorker
|
||||||
end
|
end
|
||||||
|
|
||||||
def payload
|
def payload
|
||||||
@payload ||= Oj.dump(serialize_payload(@quote, ActivityPub::QuoteRequestSerializer, signer: @account))
|
@payload ||= Oj.dump(serialize_payload(@quote, ActivityPub::QuoteRequestSerializer, signer: @account, allow_post_inlining: true))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -23,7 +23,9 @@ RSpec.describe ActivityPub::QuoteRequestWorker do
|
||||||
type: 'QuoteRequest',
|
type: 'QuoteRequest',
|
||||||
actor: ActivityPub::TagManager.instance.uri_for(quote.account),
|
actor: ActivityPub::TagManager.instance.uri_for(quote.account),
|
||||||
object: ActivityPub::TagManager.instance.uri_for(quoted_status),
|
object: ActivityPub::TagManager.instance.uri_for(quoted_status),
|
||||||
instrument: anything # TODO: inline post in request?
|
instrument: a_hash_including(
|
||||||
|
id: ActivityPub::TagManager.instance.uri_for(status)
|
||||||
|
)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user