diff options
author | Fire Demon <firedemon@creature.cafe> | 2020-08-16 23:18:38 -0500 |
---|---|---|
committer | Fire Demon <firedemon@creature.cafe> | 2020-08-30 05:45:18 -0500 |
commit | b1e6e6957e62f3da3857f42ec6c343cb9660434d (patch) | |
tree | e1305ef8cf98aabe10fa58c8bc27d0408c681066 /app/serializers | |
parent | af0b6f445c597b41e861da9e77f39b4caed3e753 (diff) |
[Federation] Include and dereference URI to the root post of threads; dynamically update thread permissions
Diffstat (limited to 'app/serializers')
-rw-r--r-- | app/serializers/activitypub/note_serializer.rb | 8 | ||||
-rw-r--r-- | app/serializers/rest/status_serializer.rb | 6 |
2 files changed, 11 insertions, 3 deletions
diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb index 163f25560..b86ab932e 100644 --- a/app/serializers/activitypub/note_serializer.rb +++ b/app/serializers/activitypub/note_serializer.rb @@ -3,7 +3,7 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer context_extensions :atom_uri, :conversation, :sensitive, :voters_count, :direct_message - context_extensions :edited, :server_metadata + context_extensions :edited, :server_metadata, :root attributes :id, :type, :summary, :in_reply_to, :published, :url, @@ -11,7 +11,7 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer :atom_uri, :in_reply_to_atom_uri, :conversation - attribute :updated + attributes :updated, :root attribute :title, key: :name, if: :title_present? attribute :content @@ -50,6 +50,10 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer end end + def root + object.conversation&.root + end + def summary return Formatter.instance.format(object) if title_present? diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb index dec39ec24..1182d8e80 100644 --- a/app/serializers/rest/status_serializer.rb +++ b/app/serializers/rest/status_serializer.rb @@ -7,7 +7,7 @@ class REST::StatusSerializer < ActiveModel::Serializer :favourites_count # Monsterfork additions - attributes :updated_at, :edited, :nest_level + attributes :updated_at, :edited, :nest_level, :root attribute :favourited, if: :current_user? attribute :reblogged, if: :current_user? @@ -110,6 +110,10 @@ class REST::StatusSerializer < ActiveModel::Serializer ActivityPub::TagManager.instance.url_for(object) end + def root + object.conversation&.root + end + def favourited if instance_options && instance_options[:relationships] instance_options[:relationships].favourites_map[object.id] || false |