получение списка администраторов и администратора по ID (любой администратор) #22
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
%%%-------------------------------------------------------------------
|
||||
%%% @doc Административный обработчик списка администраторов.
|
||||
%%% GET – список всех администраторов (только для superadmin).
|
||||
%%% GET – список всех администраторов (доступен всем администраторам).
|
||||
%%% POST – создать нового администратора (только для superadmin).
|
||||
%%% @end
|
||||
%%%-------------------------------------------------------------------
|
||||
@@ -26,7 +26,7 @@ trails() ->
|
||||
ListGet = #{
|
||||
path => <<"/v1/admin/admins">>,
|
||||
method => <<"GET">>,
|
||||
description => <<"List all admins (superadmin only)">>,
|
||||
description => <<"List all admins (any admin)">>,
|
||||
tags => [<<"Admins">>],
|
||||
parameters => [
|
||||
#{name => <<"role">>, in => <<"query">>, schema => #{type => string}},
|
||||
@@ -98,10 +98,10 @@ admin_schema() ->
|
||||
%%% HTTP-методы
|
||||
%%%===================================================================
|
||||
|
||||
%% @doc GET /v1/admin/admins – список администраторов.
|
||||
%% @doc GET /v1/admin/admins – список администраторов (доступен всем администраторам).
|
||||
-spec list_admins(cowboy_req:req()) -> {ok, binary(), cowboy_req:req()}.
|
||||
list_admins(Req) ->
|
||||
case handler_utils:is_superadmin(Req) of
|
||||
case handler_utils:auth_admin(Req) of
|
||||
{ok, _AdminId, Req1} ->
|
||||
Filters = parse_admin_filters(Req1),
|
||||
Pagination = handler_utils:parse_pagination_params(Req1),
|
||||
@@ -113,7 +113,7 @@ list_admins(Req) ->
|
||||
handler_utils:send_error(Req1, Code, Msg)
|
||||
end.
|
||||
|
||||
%% @doc POST /v1/admin/admins – создание администратора.
|
||||
%% @doc POST /v1/admin/admins – создание администратора (только суперадмин).
|
||||
-spec create_admin(cowboy_req:req()) -> {ok, binary(), cowboy_req:req()}.
|
||||
create_admin(Req) ->
|
||||
case handler_utils:is_superadmin(Req) of
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
%%%-------------------------------------------------------------------
|
||||
%%% @doc Административный обработчик конкретного администратора.
|
||||
%%% GET /v1/admin/admins/:id – получить администратора
|
||||
%%% PUT /v1/admin/admins/:id – обновить администратора
|
||||
%%% DELETE /v1/admin/admins/:id – удалить администратора
|
||||
%%%
|
||||
%%% Все операции доступны только суперадмину.
|
||||
%%% GET /v1/admin/admins/:id – получить администратора (доступен всем администраторам)
|
||||
%%% PUT /v1/admin/admins/:id – обновить администратора (только суперадмин)
|
||||
%%% DELETE /v1/admin/admins/:id – удалить администратора (только суперадмин)
|
||||
%%% @end
|
||||
%%%-------------------------------------------------------------------
|
||||
-module(admin_handler_admins_by_id).
|
||||
@@ -32,7 +30,7 @@ trails() ->
|
||||
#{ % GET by id
|
||||
path => <<"/v1/admin/admins/:id">>,
|
||||
method => <<"GET">>,
|
||||
description => <<"Get admin by ID (superadmin only)">>,
|
||||
description => <<"Get admin by ID (any admin)">>,
|
||||
tags => [<<"Admins">>],
|
||||
parameters => IdParam,
|
||||
responses => #{
|
||||
@@ -105,10 +103,10 @@ admin_update_schema() ->
|
||||
|
||||
%%% Internal functions
|
||||
|
||||
%% @doc GET /v1/admin/admins/:id – получение администратора.
|
||||
%% @doc GET /v1/admin/admins/:id – получение администратора (любой админ).
|
||||
-spec get_admin(cowboy_req:req()) -> {ok, binary(), cowboy_req:req()}.
|
||||
get_admin(Req) ->
|
||||
case handler_utils:is_superadmin(Req) of
|
||||
case handler_utils:auth_admin(Req) of
|
||||
{ok, _AdminId, Req1} ->
|
||||
Id = cowboy_req:binding(id, Req1),
|
||||
case logic_admin:get_admin(Id) of
|
||||
@@ -123,7 +121,7 @@ get_admin(Req) ->
|
||||
handler_utils:send_error(Req1, Code, Msg)
|
||||
end.
|
||||
|
||||
%% @doc PUT /v1/admin/admins/:id – обновление администратора.
|
||||
%% @doc PUT /v1/admin/admins/:id – обновление администратора (только суперадмин).
|
||||
-spec update_admin(cowboy_req:req()) -> {ok, binary(), cowboy_req:req()}.
|
||||
update_admin(Req) ->
|
||||
case handler_utils:is_superadmin(Req) of
|
||||
@@ -152,7 +150,7 @@ update_admin(Req) ->
|
||||
handler_utils:send_error(Req1, Code, Msg)
|
||||
end.
|
||||
|
||||
%% @doc DELETE /v1/admin/admins/:id – физическое удаление администратора.
|
||||
%% @doc DELETE /v1/admin/admins/:id – физическое удаление администратора (только суперадмин).
|
||||
-spec delete_admin(cowboy_req:req()) -> {ok, binary(), cowboy_req:req()}.
|
||||
delete_admin(Req) ->
|
||||
case handler_utils:is_superadmin(Req) of
|
||||
|
||||
Reference in New Issue
Block a user