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

shrike
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 end
def statuses def statuses
@statuses ||= if status_ids.nil? @statuses ||= begin
[] if status_ids.nil?
else []
Status.where(id: status_ids).distributable_visibility else
end Status.with_includes.distributable_visibility.where(id: status_ids)
end
end
end end
def tags def tags

View File

@ -9,7 +9,7 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
attribute :read, if: :current_user? attribute :read, if: :current_user?
has_many :mentions has_many :mentions
has_many :statuses has_many :statuses, serializer: REST::StatusSerializer
has_many :tags, serializer: REST::StatusSerializer::TagSerializer has_many :tags, serializer: REST::StatusSerializer::TagSerializer
has_many :emojis, serializer: REST::CustomEmojiSerializer has_many :emojis, serializer: REST::CustomEmojiSerializer
has_many :reactions, serializer: REST::ReactionSerializer has_many :reactions, serializer: REST::ReactionSerializer
@ -49,16 +49,4 @@ class REST::AnnouncementSerializer < ActiveModel::Serializer
object.pretty_acct object.pretty_acct
end end
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 end