Browse Source

Allow unblocking a domain via query params

frontends/logic-flow
Egor Kislitsyn 4 years ago
parent
commit
bdb3375933
No known key found for this signature in database GPG Key ID: 1B49CB15B71E7805
3 changed files with 26 additions and 3 deletions
  1. +3
    -3
      lib/pleroma/web/api_spec/operations/domain_block_operation.ex
  2. +5
    -0
      lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex
  3. +18
    -0
      test/web/mastodon_api/controllers/domain_block_controller_test.exs

+ 3
- 3
lib/pleroma/web/api_spec/operations/domain_block_operation.ex View File

@@ -57,6 +57,7 @@ defmodule Pleroma.Web.ApiSpec.DomainBlockOperation do
description: "Remove a domain block, if it exists in the user's array of blocked domains.",
operationId: "DomainBlockController.delete",
requestBody: domain_block_request(),
parameters: [Operation.parameter(:domain, :query, %Schema{type: :string}, "Domain name")],
security: [%{"oAuth" => ["follow", "write:blocks"]}],
responses: %{
200 => Operation.response("Empty object", "application/json", %Schema{type: :object})
@@ -71,10 +72,9 @@ defmodule Pleroma.Web.ApiSpec.DomainBlockOperation do
type: :object,
properties: %{
domain: %Schema{type: :string}
},
required: [:domain]
}
},
required: true,
required: false,
example: %{
"domain" => "facebook.com"
}


+ 5
- 0
lib/pleroma/web/mastodon_api/controllers/domain_block_controller.ex View File

@@ -37,4 +37,9 @@ defmodule Pleroma.Web.MastodonAPI.DomainBlockController do
User.unblock_domain(blocker, domain)
json(conn, %{})
end

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

+ 18
- 0
test/web/mastodon_api/controllers/domain_block_controller_test.exs View File

@@ -32,6 +32,24 @@ defmodule Pleroma.Web.MastodonAPI.DomainBlockControllerTest do
refute 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"})

User.block_domain(user, "dogwhistle.zone")
user = refresh_record(user)
assert User.blocks?(user, other_user)

ret_conn =
conn
|> put_req_header("content-type", "application/json")
|> delete("/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)
refute User.blocks?(user, other_user)
end

test "getting a list of domain blocks" do
%{user: user, conn: conn} = oauth_access(["read:blocks"])



Loading…
Cancel
Save