diff options
author | ThibG <thib@sitedethib.com> | 2019-02-28 22:02:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-28 22:02:36 +0100 |
commit | b969b150e8f095dc91c19c7381923c2c19edb968 (patch) | |
tree | 015d70b4b633fadf70cab9d0a0b0fbd55e6456ae /app/serializers/activitypub/note_serializer.rb | |
parent | 76ed481aa7b67d624675cdaa85bac583853fd24d (diff) | |
parent | 2267eee356a3d2b8ebb20892c5182b6f8169403e (diff) |
Merge pull request #932 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/serializers/activitypub/note_serializer.rb')
-rw-r--r-- | app/serializers/activitypub/note_serializer.rb | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb index c9d23e25f..4aab993a9 100644 --- a/app/serializers/activitypub/note_serializer.rb +++ b/app/serializers/activitypub/note_serializer.rb @@ -13,6 +13,8 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer has_many :media_attachments, key: :attachment has_many :virtual_tags, key: :tag + has_one :replies, serializer: ActivityPub::CollectionSerializer, if: :local? + def id ActivityPub::TagManager.instance.uri_for(object) end @@ -33,6 +35,21 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer { object.language => Formatter.instance.format(object) } end + def replies + replies = object.self_replies(5).pluck(:id, :uri) + last_id = replies.last&.first + ActivityPub::CollectionPresenter.new( + type: :unordered, + id: ActivityPub::TagManager.instance.replies_uri_for(object), + first: ActivityPub::CollectionPresenter.new( + type: :unordered, + part_of: ActivityPub::TagManager.instance.replies_uri_for(object), + items: replies.map(&:second), + next: last_id ? ActivityPub::TagManager.instance.replies_uri_for(object, page: true, min_id: last_id) : nil + ) + ) + end + def language? object.language.present? end |