fix(audit): reason и entity_id в audit как строки, не map.
CI / test (push) Successful in 15m19s

Модерация писала #{reason => ...} — UI падал с React #31.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-16 14:08:25 +03:00
parent 6d91e9cf18
commit 77a53c77cd
3 changed files with 23 additions and 15 deletions
+13 -2
View File
@@ -202,12 +202,23 @@ audit_to_json(A) ->
role => A#admin_audit.role,
action => A#admin_audit.action,
entity_type => A#admin_audit.entity_type,
entity_id => A#admin_audit.entity_id,
entity_id => audit_entity_id(A#admin_audit.entity_id),
timestamp => handler_utils:datetime_to_iso8601(A#admin_audit.timestamp),
ip => A#admin_audit.ip,
reason => A#admin_audit.reason
reason => audit_reason(A#admin_audit.reason)
}.
audit_entity_id(Id) when is_binary(Id) -> Id;
audit_entity_id(#{id := Id}) when is_binary(Id) -> Id;
audit_entity_id(#{<<"id">> := Id}) when is_binary(Id) -> Id;
audit_entity_id(V) ->
iolist_to_binary(io_lib:format("~p", [V])).
audit_reason(R) when is_binary(R) -> R;
audit_reason(#{reason := R}) when is_binary(R) -> R;
audit_reason(#{<<"reason">> := R}) when is_binary(R) -> R;
audit_reason(_) -> <<>>.
%% @doc Преобразует #event{} в JSON-карту.
-spec event_to_json(#event{}) -> map().
event_to_json(Event) ->