From d4b097a88cb43105be86ea06fe4a4dd7830b8416 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Mon, 17 Jul 2017 10:57:04 +0200 Subject: [PATCH] Add missing ActivityPub representations (#4230) - Follow, undo follow - Accept follow, reject follow - Like, undo like - Block, undo block - Delete (note) - Update (actor) --- .../activitypub/accept_follow_serializer.rb | 15 +++++++++++++++ .../activitypub/block_serializer.rb | 18 ++++++++++++++++++ .../activitypub/delete_serializer.rb | 18 ++++++++++++++++++ .../activitypub/follow_serializer.rb | 18 ++++++++++++++++++ app/serializers/activitypub/like_serializer.rb | 18 ++++++++++++++++++ .../activitypub/reject_follow_serializer.rb | 15 +++++++++++++++ .../activitypub/undo_block_serializer.rb | 15 +++++++++++++++ .../activitypub/undo_follow_serializer.rb | 15 +++++++++++++++ .../activitypub/undo_like_serializer.rb | 15 +++++++++++++++ .../activitypub/update_serializer.rb | 15 +++++++++++++++ 10 files changed, 162 insertions(+) create mode 100644 app/serializers/activitypub/accept_follow_serializer.rb create mode 100644 app/serializers/activitypub/block_serializer.rb create mode 100644 app/serializers/activitypub/delete_serializer.rb create mode 100644 app/serializers/activitypub/follow_serializer.rb create mode 100644 app/serializers/activitypub/like_serializer.rb create mode 100644 app/serializers/activitypub/reject_follow_serializer.rb create mode 100644 app/serializers/activitypub/undo_block_serializer.rb create mode 100644 app/serializers/activitypub/undo_follow_serializer.rb create mode 100644 app/serializers/activitypub/undo_like_serializer.rb create mode 100644 app/serializers/activitypub/update_serializer.rb diff --git a/app/serializers/activitypub/accept_follow_serializer.rb b/app/serializers/activitypub/accept_follow_serializer.rb new file mode 100644 index 00000000..ce900bc7 --- /dev/null +++ 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 new file mode 100644 index 00000000..a001b213 --- /dev/null +++ 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 new file mode 100644 index 00000000..77098b1b --- /dev/null +++ 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 new file mode 100644 index 00000000..1953a2d7 --- /dev/null +++ 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 new file mode 100644 index 00000000..4226913f --- /dev/null +++ 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 new file mode 100644 index 00000000..28584d62 --- /dev/null +++ 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 new file mode 100644 index 00000000..f71faa72 --- /dev/null +++ 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 new file mode 100644 index 00000000..fe91f5f1 --- /dev/null +++ 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 new file mode 100644 index 00000000..db9cd1d0 --- /dev/null +++ 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 new file mode 100644 index 00000000..322305da --- /dev/null +++ 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