about summary refs log tree commit diff
path: root/app/serializers
diff options
context:
space:
mode:
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/activitypub/actor_serializer.rb4
-rw-r--r--app/serializers/activitypub/delete_serializer.rb3
-rw-r--r--app/serializers/activitypub/note_serializer.rb17
3 files changed, 15 insertions, 9 deletions
diff --git a/app/serializers/activitypub/actor_serializer.rb b/app/serializers/activitypub/actor_serializer.rb
index a72ecee24..f004dc326 100644
--- a/app/serializers/activitypub/actor_serializer.rb
+++ b/app/serializers/activitypub/actor_serializer.rb
@@ -6,12 +6,10 @@ class ActivityPub::ActorSerializer < ActiveModel::Serializer
   attributes :id, :type, :following, :followers,
              :inbox, :outbox, :shared_inbox,
              :preferred_username, :name, :summary,
-             :url
+             :url, :locked
 
   has_one :public_key, serializer: ActivityPub::PublicKeySerializer
 
-  attribute :locked, key: '_:locked'
-
   class ImageSerializer < ActiveModel::Serializer
     include RoutingHelper
 
diff --git a/app/serializers/activitypub/delete_serializer.rb b/app/serializers/activitypub/delete_serializer.rb
index a041c577b..87a43b95d 100644
--- a/app/serializers/activitypub/delete_serializer.rb
+++ b/app/serializers/activitypub/delete_serializer.rb
@@ -2,8 +2,7 @@
 
 class ActivityPub::DeleteSerializer < ActiveModel::Serializer
   class TombstoneSerializer < ActiveModel::Serializer
-    attributes :id, :type
-    attribute :atom_uri, key: '_:atomUri'
+    attributes :id, :type, :atom_uri
 
     def id
       ActivityPub::TagManager.instance.uri_for(object)
diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb
index 15031dfdc..d42f54263 100644
--- a/app/serializers/activitypub/note_serializer.rb
+++ b/app/serializers/activitypub/note_serializer.rb
@@ -3,14 +3,13 @@
 class ActivityPub::NoteSerializer < ActiveModel::Serializer
   attributes :id, :type, :summary, :content,
              :in_reply_to, :published, :url,
-             :attributed_to, :to, :cc, :sensitive
+             :attributed_to, :to, :cc, :sensitive,
+             :atom_uri, :in_reply_to_atom_uri,
+             :conversation
 
   has_many :media_attachments, key: :attachment
   has_many :virtual_tags, key: :tag
 
-  attribute :atom_uri, key: '_:atomUri', if: :local?
-  attribute :in_reply_to_atom_uri, key: '_:inReplyToAtomUri'
-
   def id
     ActivityPub::TagManager.instance.uri_for(object)
   end
@@ -62,6 +61,8 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
   end
 
   def atom_uri
+    return unless object.local?
+
     ::TagManager.instance.uri_for(object)
   end
 
@@ -71,6 +72,14 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
     ::TagManager.instance.uri_for(object.thread)
   end
 
+  def conversation
+    if object.conversation.uri?
+      object.conversation.uri
+    else
+      TagManager.instance.unique_tag(object.conversation.created_at, object.conversation.id, 'Conversation')
+    end
+  end
+
   def local?
     object.account.local?
   end