Change `/api/v1/announcements` to return regular `Status` entities

This commit is contained in:
Claire 2023-08-31 11:31:39 +02:00
parent 9e77ab7db2
commit fd72c1c5f5
2 changed files with 8 additions and 18 deletions

View File

@ -54,11 +54,13 @@ class Announcement < ApplicationRecord
end
def statuses
@statuses ||= if status_ids.nil?
[]
else
Status.where(id: status_ids, visibility: [:public, :unlisted])
end
@statuses ||= begin
if status_ids.nil?
[]
else
Status.includes(:preloadable_poll, :media_attachments, :account, reblog: :account).where(id: status_ids, visibility: [:public, :unlisted])
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