diff options
3 files changed, 40 insertions, 2 deletions
| diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex index 294590186..f2897a3a3 100644 --- a/lib/pleroma/web/api_spec/operations/account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/account_operation.ex @@ -452,7 +452,7 @@ defmodule Pleroma.Web.ApiSpec.AccountOperation do        operationId: "AccountController.blocks",        description: "View your blocks. See also accounts/:id/{block,unblock}",        security: [%{"oAuth" => ["read:blocks"]}], -      parameters: pagination_params(), +      parameters: [with_relationships_param() | pagination_params()],        responses: %{          200 => Operation.response("Accounts", "application/json", array_of_accounts())        } diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index 02dfc552f..c313a0e97 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -540,7 +540,12 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do      conn      |> add_link_headers(users) -    |> render("index.json", users: users, for: user, as: :user) +    |> render("index.json", +      users: users, +      for: user, +      as: :user, +      embed_relationships: embed_relationships?(params) +    )    end    @doc "GET /api/v1/accounts/lookup" diff --git a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs index 958b7f76f..128e60b0a 100644 --- a/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/account_controller_test.exs @@ -2031,6 +2031,39 @@ defmodule Pleroma.Web.MastodonAPI.AccountControllerTest do      assert [%{"id" => ^id1}] = result    end +  test "list of blocks with with_relationships parameter" do +    %{user: user, conn: conn} = oauth_access(["read:blocks"]) +    %{id: id1} = other_user1 = insert(:user) +    %{id: id2} = other_user2 = insert(:user) +    %{id: id3} = other_user3 = insert(:user) + +    {:ok, _, _} = User.follow(other_user1, user) +    {:ok, _, _} = User.follow(other_user2, user) +    {:ok, _, _} = User.follow(other_user3, user) + +    {:ok, _} = User.block(user, other_user1) +    {:ok, _} = User.block(user, other_user2) +    {:ok, _} = User.block(user, other_user3) + +    assert [ +             %{ +               "id" => ^id3, +               "pleroma" => %{"relationship" => %{"blocking" => true, "followed_by" => false}} +             }, +             %{ +               "id" => ^id2, +               "pleroma" => %{"relationship" => %{"blocking" => true, "followed_by" => false}} +             }, +             %{ +               "id" => ^id1, +               "pleroma" => %{"relationship" => %{"blocking" => true, "followed_by" => false}} +             } +           ] = +             conn +             |> get("/api/v1/blocks?with_relationships=true") +             |> json_response_and_validate_schema(200) +  end +    test "account lookup", %{conn: conn} do      %{nickname: acct} = insert(:user, %{nickname: "nickname"})      %{nickname: acct_two} = insert(:user, %{nickname: "nickname@notlocaldoma.in"}) | 
