InstanceView: Omit comment if it's empty

This commit is contained in:
Lain Soykaf 2026-01-16 16:17:21 +04:00
commit e91bb2144d
2 changed files with 24 additions and 3 deletions

View file

@ -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()

View file

@ -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)