diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index 18c6c0f80..0dc7a5fea 100644 --- a/lib/pleroma/web/mastodon_api/views/instance_view.ex +++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -123,12 +123,17 @@ defmodule Pleroma.Web.MastodonAPI.InstanceView do host in exclusions or not Map.has_key?(@block_severities, rule) end) |> Enum.map(fn {host, reason} -> - %{ + domain_block = %{ domain: host, digest: :crypto.hash(:sha256, host) |> Base.encode16(case: :lower), - severity: Map.get(@block_severities, rule), - comment: reason + severity: Map.get(@block_severities, rule) } + + if not_empty_string(reason) do + Map.put(domain_block, :comment, reason) + else + domain_block + end end) end) |> List.flatten() diff --git a/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs b/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs index e0c9091e0..461b46066 100644 --- a/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs +++ b/test/pleroma/web/mastodon_api/controllers/instance_controller_test.exs @@ -171,6 +171,22 @@ defmodule Pleroma.Web.MastodonAPI.InstanceControllerTest do ] == json_response_and_validate_schema(conn, 200) end + test "omits comment field if comment is empty", %{conn: conn} do + clear_config([:mrf_simple, :reject], ["fediverse.pl"]) + + conn = get(conn, "/api/v1/instance/domain_blocks") + + assert [ + %{ + "digest" => "55e3f44aefe7eb022d3b1daaf7396cabf7f181bf6093c8ea841e30c9fc7d8226", + "domain" => "fediverse.pl", + "severity" => "suspend" + } = domain_block + ] = json_response_and_validate_schema(conn, 200) + + refute Map.has_key?(domain_block, "comment") + end + test "returns empty array if mrf transparency is disabled", %{conn: conn} do clear_config([:mrf, :transparency], false)