Deprecate /api/v1/statuses/:id/card (Mastodon 3.0.0)

This commit is contained in:
Haelwenn (lanodan) Monnier 2024-02-15 01:22:12 +01:00
parent fdd5a00f8c
commit 692028b24f
5 changed files with 7 additions and 50 deletions

View file

@ -0,0 +1 @@
Remove `/api/v1/statuses/:id/card` endpoint used for preview cards in favor of inlined in Statuses (also removed in Mastodon 3.0.0)

View file

@ -327,34 +327,6 @@ defmodule Pleroma.Web.ApiSpec.StatusOperation do
}
end
def card_operation do
%Operation{
tags: ["Retrieve status information"],
deprecated: true,
summary: "Preview card",
description: "Deprecated in favor of card property inlined on Status entity",
operationId: "StatusController.card",
parameters: [id_param()],
security: [%{"oAuth" => ["read:statuses"]}],
responses: %{
200 =>
Operation.response("Card", "application/json", %Schema{
type: :object,
nullable: true,
properties: %{
type: %Schema{type: :string, enum: ["link", "photo", "video", "rich"]},
provider_name: %Schema{type: :string, nullable: true},
provider_url: %Schema{type: :string, format: :uri},
url: %Schema{type: :string, format: :uri},
image: %Schema{type: :string, nullable: true, format: :uri},
title: %Schema{type: :string},
description: %Schema{type: :string}
}
})
}
}
end
def favourited_by_operation do
%Operation{
tags: ["Retrieve status information"],

View file

@ -463,21 +463,6 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
end
end
@doc "GET /api/v1/statuses/:id/card"
@deprecated "https://github.com/tootsuite/mastodon/pull/11213"
def card(
%{assigns: %{user: user}, private: %{open_api_spex: %{params: %{id: status_id}}}} = conn,
_
) do
with %Activity{} = activity <- Activity.get_by_id(status_id),
true <- Visibility.visible_for_user?(activity, user) do
data = Pleroma.Web.RichMedia.Helpers.fetch_data_for_activity(activity)
render(conn, "card.json", data)
else
_ -> render_error(conn, :not_found, "Record not found")
end
end
@doc "GET /api/v1/statuses/:id/favourited_by"
def favourited_by(
%{assigns: %{user: user}, private: %{open_api_spex: %{params: %{id: id}}}} = conn,

View file

@ -763,7 +763,6 @@ defmodule Pleroma.Web.Router do
get("/statuses", StatusController, :index)
get("/statuses/:id", StatusController, :show)
get("/statuses/:id/context", StatusController, :context)
get("/statuses/:id/card", StatusController, :card)
get("/statuses/:id/favourited_by", StatusController, :favourited_by)
get("/statuses/:id/reblogged_by", StatusController, :reblogged_by)
get("/statuses/:id/history", StatusController, :show_history)

View file

@ -1745,10 +1745,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
response =
conn
|> get("/api/v1/statuses/#{activity.id}/card")
|> get("/api/v1/statuses/#{activity.id}")
|> json_response_and_validate_schema(200)
assert response == card_data
assert response["card"] == card_data
# works with private posts
{:ok, activity} =
@ -1756,10 +1756,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
response_two =
conn
|> get("/api/v1/statuses/#{activity.id}/card")
|> get("/api/v1/statuses/#{activity.id}")
|> json_response_and_validate_schema(200)
assert response_two == card_data
assert response_two["card"] == card_data
end
test "replaces missing description with an empty string", %{conn: conn, user: user} do
@ -1769,10 +1769,10 @@ defmodule Pleroma.Web.MastodonAPI.StatusControllerTest do
response =
conn
|> get("/api/v1/statuses/#{activity.id}/card")
|> get("/api/v1/statuses/#{activity.id}")
|> json_response_and_validate_schema(:ok)
assert response == %{
assert response["card"] == %{
"type" => "link",
"title" => "Pleroma",
"description" => "",