Change /api/v1/statuses/:id/history to always return at least one item (#25510)

This commit is contained in:
Claire 2023-06-22 14:56:14 +02:00 committed by Tarrien
parent 0145df3268
commit eb8a04db9a

View File

@ -1,16 +1,21 @@
# frozen_string_literal: true
class Api::V1::Statuses::HistoriesController < Api::V1::Statuses::BaseController
class Api::V1::Statuses::HistoriesController < Api::BaseController
include Authorization
before_action -> { authorize_if_got_token! :read, :'read:statuses' }
before_action :set_status
def show
cache_if_unauthenticated!
render json: status_edits, each_serializer: REST::StatusEditSerializer
render json: @status.edits.includes(:account, status: [:account]), each_serializer: REST::StatusEditSerializer
end
private
def status_edits
@status.edits.ordered.includes(:account, status: [:account]).to_a.presence || [@status.build_snapshot(at_time: @status.edited_at || @status.created_at)]
def set_status
@status = Status.find(params[:status_id])
authorize @status, :show?
rescue Mastodon::NotPermittedError
not_found
end
end