commit: d4b097a88cb43105be86ea06fe4a4dd7830b8416
parent: 902c5cf7cafcd08caaf4fc75bd3fbfe41e5a9ad7
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Mon, 17 Jul 2017 10:57:04 +0200
Add missing ActivityPub representations (#4230)
- Follow, undo follow
- Accept follow, reject follow
- Like, undo like
- Block, undo block
- Delete (note)
- Update (actor)
Diffstat:
10 files changed, 162 insertions(+), 0 deletions(-)
diff --git a/app/serializers/activitypub/accept_follow_serializer.rb b/app/serializers/activitypub/accept_follow_serializer.rb
@@ -0,0 +1,15 @@
+# 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
diff --git a/app/serializers/activitypub/block_serializer.rb b/app/serializers/activitypub/block_serializer.rb
@@ -0,0 +1,18 @@
+# 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
diff --git a/app/serializers/activitypub/delete_serializer.rb b/app/serializers/activitypub/delete_serializer.rb
@@ -0,0 +1,18 @@
+# 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
diff --git a/app/serializers/activitypub/follow_serializer.rb b/app/serializers/activitypub/follow_serializer.rb
@@ -0,0 +1,18 @@
+# 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
diff --git a/app/serializers/activitypub/like_serializer.rb b/app/serializers/activitypub/like_serializer.rb
@@ -0,0 +1,18 @@
+# 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
diff --git a/app/serializers/activitypub/reject_follow_serializer.rb b/app/serializers/activitypub/reject_follow_serializer.rb
@@ -0,0 +1,15 @@
+# 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
diff --git a/app/serializers/activitypub/undo_block_serializer.rb b/app/serializers/activitypub/undo_block_serializer.rb
@@ -0,0 +1,15 @@
+# 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
diff --git a/app/serializers/activitypub/undo_follow_serializer.rb b/app/serializers/activitypub/undo_follow_serializer.rb
@@ -0,0 +1,15 @@
+# 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
diff --git a/app/serializers/activitypub/undo_like_serializer.rb b/app/serializers/activitypub/undo_like_serializer.rb
@@ -0,0 +1,15 @@
+# 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
diff --git a/app/serializers/activitypub/update_serializer.rb b/app/serializers/activitypub/update_serializer.rb
@@ -0,0 +1,15 @@
+# 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