summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>2024-02-15 01:22:12 +0100
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>2024-02-15 01:27:39 +0100
commit692028b24f5be64cc06d3d470510252b24176cc0 (patch)
tree5068afd87db2abfe8fc3654fe10565eff9a733d0
parentfdd5a00f8c89017338bac720fc9d5e63d638aa00 (diff)
Deprecate /api/v1/statuses/:id/card (Mastodon 3.0.0)previewcard-get.remove
-rw-r--r--changelog.d/previewcard-get.remove1
-rw-r--r--lib/pleroma/web/api_spec/operations/status_operation.ex28
-rw-r--r--lib/pleroma/web/mastodon_api/controllers/status_controller.ex15
-rw-r--r--lib/pleroma/web/router.ex1
-rw-r--r--test/pleroma/web/mastodon_api/controllers/status_controller_test.exs12
5 files changed, 7 insertions, 50 deletions
diff --git a/changelog.d/previewcard-get.remove b/changelog.d/previewcard-get.remove
new file mode 100644
index 000000000..a1abc284f
--- /dev/null
+++ b/changelog.d/previewcard-get.remove
@@ -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)
diff --git a/lib/pleroma/web/api_spec/operations/status_operation.ex b/lib/pleroma/web/api_spec/operations/status_operation.ex
index ef4e34044..06e0df758 100644
--- a/lib/pleroma/web/api_spec/operations/status_operation.ex
+++ b/lib/pleroma/web/api_spec/operations/status_operation.ex
@@ -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"],
diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
index 5aa7bddf0..52af067cd 100644
--- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
+++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex
@@ -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,
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 8ba845364..3f3af136b 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -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)
diff --git a/test/pleroma/web/mastodon_api/controllers/status_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/status_controller_test.exs
index f8af68797..7f3caad48 100644
--- a/test/pleroma/web/mastodon_api/controllers/status_controller_test.exs
+++ b/test/pleroma/web/mastodon_api/controllers/status_controller_test.exs
@@ -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" => "",