--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::AcceptFollowSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+
+ has_one :object, serializer: ActivityPub::FollowSerializer
+
+ def type
+ 'Accept'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.target_account)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::BlockSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+ attribute :virtual_object, key: :object
+
+ def type
+ 'Block'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+
+ def virtual_object
+ ActivityPub::TagManager.instance.uri_for(object.target_account)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::DeleteSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+ attribute :virtual_object, key: :object
+
+ def type
+ 'Delete'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+
+ def virtual_object
+ ActivityPub::TagManager.instance.uri_for(object)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::FollowSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+ attribute :virtual_object, key: :object
+
+ def type
+ 'Follow'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+
+ def virtual_object
+ ActivityPub::TagManager.instance.uri_for(object.target_account)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::LikeSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+ attribute :virtual_object, key: :object
+
+ def type
+ 'Like'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+
+ def virtual_object
+ ActivityPub::TagManager.instance.uri_for(object.status)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::RejectFollowSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+
+ has_one :object, serializer: ActivityPub::FollowSerializer
+
+ def type
+ 'Reject'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.target_account)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::UndoBlockSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+
+ has_one :object, serializer: ActivityPub::BlockSerializer
+
+ def type
+ 'Undo'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::UndoFollowSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+
+ has_one :object, serializer: ActivityPub::FollowSerializer
+
+ def type
+ 'Undo'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::UndoLikeSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+
+ has_one :object, serializer: ActivityPub::LikeSerializer
+
+ def type
+ 'Undo'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object.account)
+ end
+end
--- /dev/null
+# frozen_string_literal: true
+
+class ActivityPub::UpdateSerializer < ActiveModel::Serializer
+ attributes :type, :actor
+
+ has_one :object, serializer: ActivityPub::ActorSerializer
+
+ def type
+ 'Update'
+ end
+
+ def actor
+ ActivityPub::TagManager.instance.uri_for(object)
+ end
+end