Рефакторинг админских обработчиков - пагинация, сортировка, фильтрация. Финал
This commit is contained in:
@@ -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.
|
||||
Reference in New Issue
Block a user