Переглянути джерело

fix: users api path & params name

DDDHuang 4 роки тому
батько
коміт
324a036aa8

+ 33 - 34
apps/emqx_dashboard/src/emqx_dashboard_api.erl

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

+ 1 - 1
apps/emqx_dashboard/test/emqx_dashboard_SUITE.erl

@@ -96,7 +96,7 @@ t_rest_api(_Config) ->
              , http_post("users", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>})
              , http_post("auth", #{<<"username">> => <<"usera">>, <<"password">> => <<"passwd">>})
              , 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">>})
              ]],
     ok.

+ 2 - 1
apps/emqx_management/src/emqx_mgmt_http.erl

@@ -118,7 +118,8 @@ format({Addr, Port}) when is_tuple(Addr) ->
     io_lib:format("~s:~w", [inet:ntoa(Addr), Port]).
 
 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) ->
         case re:run(atom_to_list(App), "^emqx") of
             {match,[{0,4}]} -> true;