Allow unblocking a domain via query params
This commit is contained in:
parent
f0d13fc3f7
commit
bdb3375933
3 changed files with 26 additions and 3 deletions
|
@ -57,6 +57,7 @@ def delete_operation do
|
||||||
description: "Remove a domain block, if it exists in the user's array of blocked domains.",
|
description: "Remove a domain block, if it exists in the user's array of blocked domains.",
|
||||||
operationId: "DomainBlockController.delete",
|
operationId: "DomainBlockController.delete",
|
||||||
requestBody: domain_block_request(),
|
requestBody: domain_block_request(),
|
||||||
|
parameters: [Operation.parameter(:domain, :query, %Schema{type: :string}, "Domain name")],
|
||||||
security: [%{"oAuth" => ["follow", "write:blocks"]}],
|
security: [%{"oAuth" => ["follow", "write:blocks"]}],
|
||||||
responses: %{
|
responses: %{
|
||||||
200 => Operation.response("Empty object", "application/json", %Schema{type: :object})
|
200 => Operation.response("Empty object", "application/json", %Schema{type: :object})
|
||||||
|
@ -71,10 +72,9 @@ defp domain_block_request do
|
||||||
type: :object,
|
type: :object,
|
||||||
properties: %{
|
properties: %{
|
||||||
domain: %Schema{type: :string}
|
domain: %Schema{type: :string}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
required: [:domain]
|
required: false,
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
example: %{
|
example: %{
|
||||||
"domain" => "facebook.com"
|
"domain" => "facebook.com"
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,4 +37,9 @@ def delete(%{assigns: %{user: blocker}, body_params: %{domain: domain}} = conn,
|
||||||
User.unblock_domain(blocker, domain)
|
User.unblock_domain(blocker, domain)
|
||||||
json(conn, %{})
|
json(conn, %{})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def delete(%{assigns: %{user: blocker}} = conn, %{domain: domain}) do
|
||||||
|
User.unblock_domain(blocker, domain)
|
||||||
|
json(conn, %{})
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -32,6 +32,24 @@ test "blocking / unblocking a domain" do
|
||||||
refute User.blocks?(user, other_user)
|
refute User.blocks?(user, other_user)
|
||||||
end
|
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
|
test "getting a list of domain blocks" do
|
||||||
%{user: user, conn: conn} = oauth_access(["read:blocks"])
|
%{user: user, conn: conn} = oauth_access(["read:blocks"])
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue