Fix #4607 - Accept/reject activities use FollowRequest, which has inverse relations (#4616)

This commit is contained in:
Eugen Rochko 2017-08-17 22:15:37 +02:00 committed by GitHub
parent ad892dbc0c
commit 116b8a6363
3 changed files with 24 additions and 2 deletions

View File

@ -3,7 +3,7 @@
class ActivityPub::AcceptFollowSerializer < ActiveModel::Serializer class ActivityPub::AcceptFollowSerializer < ActiveModel::Serializer
attributes :id, :type, :actor attributes :id, :type, :actor
has_one :object, serializer: ActivityPub::FollowSerializer has_one :object, serializer: ActivityPub::InverseFollowSerializer
def id def id
[ActivityPub::TagManager.instance.uri_for(object.target_account), '#accepts/follows/', object.id].join [ActivityPub::TagManager.instance.uri_for(object.target_account), '#accepts/follows/', object.id].join

View File

@ -0,0 +1,22 @@
# frozen_string_literal: true
class ActivityPub::InverseFollowSerializer < ActiveModel::Serializer
attributes :id, :type, :actor
attribute :virtual_object, key: :object
def id
[ActivityPub::TagManager.instance.uri_for(object.target_account), '#follows/', object.id].join
end
def type
'Follow'
end
def actor
ActivityPub::TagManager.instance.uri_for(object.target_account)
end
def virtual_object
ActivityPub::TagManager.instance.uri_for(object.account)
end
end

View File

@ -3,7 +3,7 @@
class ActivityPub::RejectFollowSerializer < ActiveModel::Serializer class ActivityPub::RejectFollowSerializer < ActiveModel::Serializer
attributes :id, :type, :actor attributes :id, :type, :actor
has_one :object, serializer: ActivityPub::FollowSerializer has_one :object, serializer: ActivityPub::InverseFollowSerializer
def id def id
[ActivityPub::TagManager.instance.uri_for(object.target_account), '#rejects/follows/', object.id].join [ActivityPub::TagManager.instance.uri_for(object.target_account), '#rejects/follows/', object.id].join