Merge pull request #7322 from zhongwencool/fix-apps-error-code

fix: add apps error code.
This commit is contained in:
zhongwencool 2022-03-16 21:32:34 +08:00 committed by GitHub
commit e83173ce25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 17 additions and 9 deletions

View File

@ -45,7 +45,8 @@ schema("/api_key") ->
description => "Create new api_key", description => "Create new api_key",
'requestBody' => delete([created_at, api_key, api_secret], fields(app)), 'requestBody' => delete([created_at, api_key, api_secret], fields(app)),
responses => #{ responses => #{
200 => hoconsc:ref(app) 200 => hoconsc:ref(app),
400 => emqx_dashboard_swagger:error_codes(['BAD_REQUEST'])
} }
} }
}; };
@ -56,7 +57,8 @@ schema("/api_key/:name") ->
description => "Return the specific api_key", description => "Return the specific api_key",
parameters => [hoconsc:ref(name)], parameters => [hoconsc:ref(name)],
responses => #{ responses => #{
200 => delete([api_secret], fields(app)) 200 => delete([api_secret], fields(app)),
404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'])
} }
}, },
put => #{ put => #{
@ -64,14 +66,16 @@ schema("/api_key/:name") ->
parameters => [hoconsc:ref(name)], parameters => [hoconsc:ref(name)],
'requestBody' => delete([created_at, api_key, api_secret, name], fields(app)), 'requestBody' => delete([created_at, api_key, api_secret, name], fields(app)),
responses => #{ responses => #{
200 => delete([api_secret], fields(app)) 200 => delete([api_secret], fields(app)),
404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'])
} }
}, },
delete => #{ delete => #{
description => "Delete the specific api_key", description => "Delete the specific api_key",
parameters => [hoconsc:ref(name)], parameters => [hoconsc:ref(name)],
responses => #{ responses => #{
204 => <<"Delete successfully">> 204 => <<"Delete successfully">>,
404 => emqx_dashboard_swagger:error_codes(['NOT_FOUND'])
} }
} }
}. }.
@ -108,7 +112,7 @@ fields(app) ->
fields(name) -> fields(name) ->
[{name, hoconsc:mk(binary(), [{name, hoconsc:mk(binary(),
#{ #{
desc => <<"[a-zA-Z0-9-_]">>, desc => <<"^[A-Za-z]+[A-Za-z0-9-_]*$">>,
example => <<"EMQX-API-KEY-1">>, example => <<"EMQX-API-KEY-1">>,
in => path, in => path,
validator => fun ?MODULE:validate_name/1 validator => fun ?MODULE:validate_name/1
@ -143,18 +147,22 @@ api_key(post, #{body := App}) ->
Desc = unicode:characters_to_binary(Desc0, unicode), Desc = unicode:characters_to_binary(Desc0, unicode),
case emqx_mgmt_auth:create(Name, Enable, ExpiredAt, Desc) of case emqx_mgmt_auth:create(Name, Enable, ExpiredAt, Desc) of
{ok, NewApp} -> {200, format(NewApp)}; {ok, NewApp} -> {200, format(NewApp)};
{error, Reason} -> {400, io_lib:format("~p", [Reason])} {error, Reason} ->
{400, #{code => 'BAD_REQUEST',
message => iolist_to_binary(io_lib:format("~p", [Reason]))}}
end. end.
-define(NOT_FOUND_RESPONSE, #{code => 'NOT_FOUND', message => <<"Name NOT FOUND">>}).
api_key_by_name(get, #{bindings := #{name := Name}}) -> api_key_by_name(get, #{bindings := #{name := Name}}) ->
case emqx_mgmt_auth:read(Name) of case emqx_mgmt_auth:read(Name) of
{ok, App} -> {200, format(App)}; {ok, App} -> {200, format(App)};
{error, not_found} -> {404, <<"NOT_FOUND">>} {error, not_found} -> {404, ?NOT_FOUND_RESPONSE}
end; end;
api_key_by_name(delete, #{bindings := #{name := Name}}) -> api_key_by_name(delete, #{bindings := #{name := Name}}) ->
case emqx_mgmt_auth:delete(Name) of case emqx_mgmt_auth:delete(Name) of
{ok, _} -> {204}; {ok, _} -> {204};
{error, not_found} -> {404, <<"NOT_FOUND">>} {error, not_found} -> {404, ?NOT_FOUND_RESPONSE}
end; end;
api_key_by_name(put, #{bindings := #{name := Name}, body := Body}) -> api_key_by_name(put, #{bindings := #{name := Name}, body := Body}) ->
Enable = maps:get(<<"enable">>, Body, undefined), Enable = maps:get(<<"enable">>, Body, undefined),
@ -162,7 +170,7 @@ api_key_by_name(put, #{bindings := #{name := Name}, body := Body}) ->
Desc = maps:get(<<"desc">>, Body, undefined), Desc = maps:get(<<"desc">>, Body, undefined),
case emqx_mgmt_auth:update(Name, Enable, ExpiredAt, Desc) of case emqx_mgmt_auth:update(Name, Enable, ExpiredAt, Desc) of
{ok, App} -> {200, format(App)}; {ok, App} -> {200, format(App)};
{error, not_found} -> {404, <<"NOT_FOUND">>} {error, not_found} -> {404, ?NOT_FOUND_RESPONSE}
end. end.
format(App = #{expired_at := ExpiredAt0, created_at := CreateAt}) -> format(App = #{expired_at := ExpiredAt0, created_at := CreateAt}) ->