Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint
Removed back in 2019 https://github.com/mastodon/mastodon/pull/11213
This commit is contained in:
		
							parent
							
								
									f4daa90bd8
								
							
						
					
					
						commit
						2f5eb79473
					
				
					 3 changed files with 1 additions and 73 deletions
				
			
		
							
								
								
									
										1
									
								
								changelog.d/card-endpoint.remove
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								changelog.d/card-endpoint.remove
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Mastodon API: Remove deprecated GET /api/v1/statuses/:id/card endpoint https://github.com/mastodon/mastodon/pull/11213
 | 
			
		||||
| 
						 | 
				
			
			@ -25,7 +25,6 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do
 | 
			
		|||
  alias Pleroma.Web.OAuth.Token
 | 
			
		||||
  alias Pleroma.Web.Plugs.OAuthScopesPlug
 | 
			
		||||
  alias Pleroma.Web.Plugs.RateLimiter
 | 
			
		||||
  alias Pleroma.Web.RichMedia.Card
 | 
			
		||||
 | 
			
		||||
  plug(Pleroma.Web.ApiSpec.CastAndValidate)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -384,21 +383,6 @@ def unmute_conversation(%{assigns: %{user: user}} = conn, %{id: id}) 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),
 | 
			
		||||
         %Card{} = card_data <- Card.get_by_activity(activity) do
 | 
			
		||||
      render(conn, "card.json", card_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}} = conn, %{id: id}) do
 | 
			
		||||
    with true <- Pleroma.Config.get([:instance, :show_reactions]),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1446,63 +1446,6 @@ test "on pin removes deletion job, on unpin reschedule deletion" do
 | 
			
		|||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe "cards" do
 | 
			
		||||
    setup do
 | 
			
		||||
      Pleroma.StaticStubbedConfigMock
 | 
			
		||||
      |> stub(:get, fn
 | 
			
		||||
        [:rich_media, :enabled] -> true
 | 
			
		||||
        path -> Pleroma.Test.StaticConfig.get(path)
 | 
			
		||||
      end)
 | 
			
		||||
 | 
			
		||||
      oauth_access(["read:statuses"])
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    test "returns rich-media card", %{conn: conn, user: user} do
 | 
			
		||||
      Tesla.Mock.mock_global(fn env -> apply(HttpRequestMock, :request, [env]) end)
 | 
			
		||||
 | 
			
		||||
      {:ok, activity} = CommonAPI.post(user, %{status: "https://example.com/ogp"})
 | 
			
		||||
 | 
			
		||||
      card_data = %{
 | 
			
		||||
        "image" => "http://ia.media-imdb.com/images/rock.jpg",
 | 
			
		||||
        "provider_name" => "example.com",
 | 
			
		||||
        "provider_url" => "https://example.com",
 | 
			
		||||
        "title" => "The Rock",
 | 
			
		||||
        "type" => "link",
 | 
			
		||||
        "url" => "https://example.com/ogp",
 | 
			
		||||
        "description" =>
 | 
			
		||||
          "Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer.",
 | 
			
		||||
        "pleroma" => %{
 | 
			
		||||
          "opengraph" => %{
 | 
			
		||||
            "image" => "http://ia.media-imdb.com/images/rock.jpg",
 | 
			
		||||
            "title" => "The Rock",
 | 
			
		||||
            "type" => "video.movie",
 | 
			
		||||
            "url" => "https://example.com/ogp",
 | 
			
		||||
            "description" =>
 | 
			
		||||
              "Directed by Michael Bay. With Sean Connery, Nicolas Cage, Ed Harris, John Spencer."
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      response =
 | 
			
		||||
        conn
 | 
			
		||||
        |> get("/api/v1/statuses/#{activity.id}/card")
 | 
			
		||||
        |> json_response_and_validate_schema(200)
 | 
			
		||||
 | 
			
		||||
      assert response == card_data
 | 
			
		||||
 | 
			
		||||
      # works with private posts
 | 
			
		||||
      {:ok, activity} =
 | 
			
		||||
        CommonAPI.post(user, %{status: "https://example.com/ogp", visibility: "direct"})
 | 
			
		||||
 | 
			
		||||
      response_two =
 | 
			
		||||
        conn
 | 
			
		||||
        |> get("/api/v1/statuses/#{activity.id}/card")
 | 
			
		||||
        |> json_response_and_validate_schema(200)
 | 
			
		||||
 | 
			
		||||
      assert response_two == card_data
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  test "bookmarks" do
 | 
			
		||||
    bookmarks_uri = "/api/v1/bookmarks"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue