Рефакторинг админских обработчиков - пагинация, сортировка, фильтрация. Финал

This commit is contained in:
2026-05-26 21:50:12 +03:00
parent ed5b275efb
commit 19b3d0dba0
21 changed files with 1833 additions and 421 deletions
+11 -3
View File
@@ -130,6 +130,7 @@ create_admin(Req) ->
_ ->
case logic_admin:create_admin(Email, Password, Role) of
{ok, Admin} ->
% Аудит создания администратора
admin_utils:log_admin_action(SuperAdminId, <<"create_admin">>, <<"admin">>, Email, Req2),
handler_utils:send_json(Req2, 201, handler_utils:admin_to_json(Admin));
{error, email_exists} ->
@@ -158,7 +159,14 @@ create_admin(Req) ->
parse_admin_filters(Req) ->
Qs = cowboy_req:parse_qs(Req),
#{
role => proplists:get_value(<<"role">>, Qs),
status => proplists:get_value(<<"status">>, Qs),
role => to_atom(proplists:get_value(<<"role">>, Qs)),
status => to_atom(proplists:get_value(<<"status">>, Qs)),
q => proplists:get_value(<<"q">>, Qs)
}.
}.
%% @private Безопасное преобразование бинарного значения в атом.
to_atom(undefined) -> undefined;
to_atom(Bin) when is_binary(Bin) ->
try binary_to_existing_atom(Bin, utf8)
catch error:badarg -> Bin
end.