Change `/api/v1/announcements` to return regular `Status` entities (#26736)

main-rebase-security-fix
Claire 2024-04-17 11:06:23 +02:00 committed by GitHub
parent 9ae2594726
commit fc89ecc6ca
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 18 deletions

View File

@ -59,11 +59,13 @@ class Announcement < ApplicationRecord
end
def statuses
@statuses ||= if status_ids.nil?
[]
else
Status.where(id: status_ids).distributable_visibility
end
@statuses ||= begin
if status_ids.nil?
[]
else
Status.with_includes.distributable_visibility.where(id: status_ids)
end
end
end
def tags

View File

@ -9,7 +9,7 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
attribute :read, if: :current_user?
has_many :mentions
has_many :statuses
has_many :statuses, serializer: REST::StatusSerializer
has_many :tags, serializer: REST::StatusSerializer::TagSerializer
has_many :emojis, serializer: REST::CustomEmojiSerializer
has_many :reactions, serializer: REST::ReactionSerializer
@ -49,16 +49,4 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
object.pretty_acct
end
end
class StatusSerializer < ActiveModel::Serializer
attributes :id, :url
def id
object.id.to_s
end
def url
ActivityPub::TagManager.instance.url_for(object)
end
end
end