Bladeren bron

Support blocking via query parameters as well and document the change.

frontends/logic-flow
Mark Felder 3 jaren geleden
bovenliggende
commit
4bfad0b483
4 gewijzigde bestanden met toevoegingen van 23 en 0 verwijderingen
  1. +1
    -0
      CHANGELOG.md
  2. +3
    -0
      lib/pleroma/web/api_spec/operations/domain_block_operation.ex
  3. +5
    -0
      lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex
  4. +14
    -0
      test/web/mastodon_api/controllers/domain_block_controller_test.exs

+ 1
- 0
CHANGELOG.md Bestand weergeven

@@ -30,6 +30,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- **Breaking:** Notification Settings API option for hiding push notification
contents has been renamed to `hide_notification_contents`
- Mastodon API: Added `pleroma.metadata.post_formats` to /api/v1/instance
- Mastodon API (legacy): Allow query parameters for `/api/v1/domain_blocks`, e.g. `/api/v1/domain_blocks?domain=badposters.zone`
</details>

<details>


+ 3
- 0
lib/pleroma/web/api_spec/operations/domain_block_operation.ex Bestand weergeven

@@ -31,6 +31,7 @@ defmodule Pleroma.Web.ApiSpec.DomainBlockOperation do
}
end

# Supporting domain query parameter is deprecated in Mastodon API
def create_operation do
%Operation{
tags: ["domain_blocks"],
@@ -45,11 +46,13 @@ defmodule Pleroma.Web.ApiSpec.DomainBlockOperation do
""",
operationId: "DomainBlockController.create",
requestBody: domain_block_request(),
parameters: [Operation.parameter(:domain, :query, %Schema{type: :string}, "Domain name")],
security: [%{"oAuth" => ["follow", "write:blocks"]}],
responses: %{200 => empty_object_response()}
}
end

# Supporting domain query parameter is deprecated in Mastodon API
def delete_operation do
%Operation{
tags: ["domain_blocks"],


+ 5
- 0
lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex Bestand weergeven

@@ -32,6 +32,11 @@ defmodule Pleroma.Web.MastodonAPI.DomainBlockController do
json(conn, %{})
end

def create(%{assigns: %{user: blocker}} = conn, %{domain: domain}) do
User.block_domain(blocker, domain)
json(conn, %{})
end

@doc "DELETE /api/v1/domain_blocks"
def delete(%{assigns: %{user: blocker}, body_params: %{domain: domain}} = conn, _params) do
User.unblock_domain(blocker, domain)


+ 14
- 0
test/web/mastodon_api/controllers/domain_block_controller_test.exs Bestand weergeven

@@ -32,6 +32,20 @@ defmodule Pleroma.Web.MastodonAPI.DomainBlockControllerTest do
refute User.blocks?(user, other_user)
end

test "blocking a domain via query params" do
%{user: user, conn: conn} = oauth_access(["write:blocks"])
other_user = insert(:user, %{ap_id: "https://dogwhistle.zone/@pundit"})

ret_conn =
conn
|> put_req_header("content-type", "application/json")
|> post("/api/v1/domain_blocks?domain=dogwhistle.zone")

assert %{} == json_response_and_validate_schema(ret_conn, 200)
user = User.get_cached_by_ap_id(user.ap_id)
assert User.blocks?(user, other_user)
end

test "unblocking a domain via query params" do
%{user: user, conn: conn} = oauth_access(["write:blocks"])
other_user = insert(:user, %{ap_id: "https://dogwhistle.zone/@pundit"})


Laden…
Annuleren
Opslaan