fix: users api path & params name

This commit is contained in:
DDDHuang 2021-08-12 10:23:28 +08:00
parent 4e94858ccf
commit 324a036aa8
3 changed files with 36 additions and 36 deletions

View File

@ -97,6 +97,14 @@ users_api() ->
responses => #{ responses => #{
<<"200">> => response_array_schema(<<"">>, show_user) <<"200">> => response_array_schema(<<"">>, show_user)
} }
},
post => #{
description => <<"Create dashboard users">>,
'requestBody' => request_body_schema(create_user),
responses => #{
<<"200">> => response_schema(<<"Create Users successfully">>),
<<"400">> => bad_request()
}
} }
}, },
{"/users", Metadata, users}. {"/users", Metadata, users}.
@ -117,7 +125,7 @@ user_api() ->
'requestBody' => request_body_schema(#{ 'requestBody' => request_body_schema(#{
type => object, type => object,
properties => #{ properties => #{
tags => #{ tag => #{
type => string type => string
} }
} }
@ -126,15 +134,6 @@ user_api() ->
<<"200">> => response_schema(<<"Update Users successfully">>), <<"200">> => response_schema(<<"Update Users successfully">>),
<<"400">> => bad_request() <<"400">> => bad_request()
} }
},
post => #{
description => <<"Create dashboard users">>,
parameters => [path_param_username()],
'requestBody' => request_body_schema(create_user),
responses => #{
<<"200">> => response_schema(<<"Create Users successfully">>),
<<"400">> => bad_request()
}
} }
}, },
{"/users/:username", Metadata, user}. {"/users/:username", Metadata, user}.
@ -161,7 +160,7 @@ change_pwd_api() ->
} }
} }
}, },
{"/change_pwd/:username", Metadata, change_pwd}. {"/users/:username/change_pwd", Metadata, change_pwd}.
path_param_username() -> path_param_username() ->
#{ #{
@ -187,14 +186,32 @@ auth(post, Request) ->
end. end.
users(get, _Request) -> users(get, _Request) ->
{200, [row(User) || User <- emqx_dashboard_admin:all_users()]}. {200, [row(User) || User <- emqx_dashboard_admin:all_users()]};
users(post, Request) ->
{ok, Body, _} = cowboy_req:read_body(Request),
Params = emqx_json:decode(Body, [return_maps]),
Tag = maps:get(<<"tag">>, Params),
Username = maps:get(<<"username">>, Params),
Password = maps:get(<<"password">>, Params),
case ?EMPTY(Username) orelse ?EMPTY(Password) of
true ->
{400, #{code => <<"CREATE_USER_FAIL">>,
message => <<"Username or password undefined">>}};
false ->
case emqx_dashboard_admin:add_user(Username, Password, Tag) of
ok -> {200};
{error, Reason} ->
{400, #{code => <<"CREATE_USER_FAIL">>, message => Reason}}
end
end.
user(put, Request) -> user(put, Request) ->
Username = cowboy_req:binding(username, Request), Username = cowboy_req:binding(username, Request),
{ok, Body, _} = cowboy_req:read_body(Request), {ok, Body, _} = cowboy_req:read_body(Request),
Params = emqx_json:decode(Body, [return_maps]), Params = emqx_json:decode(Body, [return_maps]),
Tags = maps:get(<<"tags">>, Params), Tag = maps:get(<<"tag">>, Params),
case emqx_dashboard_admin:update_user(Username, Tags) of case emqx_dashboard_admin:update_user(Username, Tag) of
ok -> {200}; ok -> {200};
{error, Reason} -> {error, Reason} ->
{400, #{code => <<"UPDATE_FAIL">>, message => Reason}} {400, #{code => <<"UPDATE_FAIL">>, message => Reason}}
@ -208,24 +225,6 @@ user(delete, Request) ->
false -> false ->
_ = emqx_dashboard_admin:remove_user(Username), _ = emqx_dashboard_admin:remove_user(Username),
{200} {200}
end;
user(post, Request) ->
{ok, Body, _} = cowboy_req:read_body(Request),
Params = emqx_json:decode(Body, [return_maps]),
Tags = maps:get(<<"tags">>, Params),
Username = maps:get(<<"username">>, Params),
Password = maps:get(<<"password">>, Params),
case ?EMPTY(Username) orelse ?EMPTY(Password) of
true ->
{400, #{code => <<"CREATE_USER_FAIL">>,
message => <<"Username or password undefined">>}};
false ->
case emqx_dashboard_admin:add_user(Username, Password, Tags) of
ok -> {200};
{error, Reason} ->
{400, #{code => <<"CREATE_USER_FAIL">>, message => Reason}}
end
end. end.
change_pwd(put, Request) -> change_pwd(put, Request) ->
@ -240,8 +239,8 @@ change_pwd(put, Request) ->
{400, #{code => <<"CHANGE_PWD_FAIL">>, message => Reason}} {400, #{code => <<"CHANGE_PWD_FAIL">>, message => Reason}}
end. end.
row(#mqtt_admin{username = Username, tags = Tags}) -> row(#mqtt_admin{username = Username, tags = Tag}) ->
#{username => Username, tags => Tags}. #{username => Username, tag => Tag}.
bad_request() -> bad_request() ->
response_schema(<<"Bad Request">>, response_schema(<<"Bad Request">>,

View File

@ -96,7 +96,7 @@ t_rest_api(_Config) ->
, http_post("users", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>}) , http_post("users", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>})
, http_post("auth", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>}) , http_post("auth", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>})
, http_delete("users/usera") , http_delete("users/usera")
, http_put("change_pwd/admin", #{<<"old_pwd">> => <<"public">>, <<"new_pwd">> => <<"newpwd">>}) , http_put("users/admin/change_pwd", #{<<"old_pwd">> => <<"public">>, <<"new_pwd">> => <<"newpwd">>})
, http_post("auth", #{<<"username">> => <<"admin">>, <<"password">> => <<"newpwd">>}) , http_post("auth", #{<<"username">> => <<"admin">>, <<"password">> => <<"newpwd">>})
]], ]],
ok. ok.

View File

@ -118,7 +118,8 @@ format({Addr, Port}) when is_tuple(Addr) ->
io_lib:format("~s:~w", [inet:ntoa(Addr), Port]). io_lib:format("~s:~w", [inet:ntoa(Addr), Port]).
apps() -> apps() ->
Apps = [App || {App, _, _} <- application:loaded_applications(), App =/= emqx_dashboard], % Apps = [App || {App, _, _} <- application:loaded_applications(), App =/= emqx_dashboard],
Apps = [App || {App, _, _} <- application:loaded_applications()],
lists:filter(fun(App) -> lists:filter(fun(App) ->
case re:run(atom_to_list(App), "^emqx") of case re:run(atom_to_list(App), "^emqx") of
{match,[{0,4}]} -> true; {match,[{0,4}]} -> true;