Merge pull request #12141 from JimMoen/fix-shared-sub-api-internal-error

Fix shared sub api internal error
This commit is contained in:
JimMoen 2023-12-11 21:43:09 +08:00 committed by GitHub
commit 6552e0523a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 1 deletions

2
apps/emqx/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
# See: emqx_common_test_helpers:copy_acl_conf/0
etc/acl.conf

View File

@ -115,7 +115,9 @@ do_list(Params) ->
{200, format_list_response(Pager, QResult)}
catch
throw:{error, page_limit_invalid} ->
{400, #{code => <<"INVALID_PARAMETER">>, message => <<"page_limit_invalid">>}}
{400, #{code => <<"INVALID_PARAMETER">>, message => <<"page_limit_invalid">>}};
error:{invalid_topic_filter, _} ->
{400, #{code => <<"INVALID_PARAMTER">>, message => <<"topic_filter_invalid">>}}
end.
lookup(#{topic := Topic}) ->

View File

@ -155,3 +155,20 @@ t_shared_topics(_Configs) ->
),
ok = emqtt:stop(Client).
t_shared_topics_invalid(_Config) ->
%% no real topic
InvalidShareTopicFilter = <<"$share/group">>,
Path = emqx_mgmt_api_test_util:api_path(["topics"]),
QS = uri_string:compose_query([
{"topic", InvalidShareTopicFilter},
{"node", atom_to_list(node())}
]),
Headers = emqx_mgmt_api_test_util:auth_header_(),
{error, {{_, 400, _}, _RespHeaders, Body}} = emqx_mgmt_api_test_util:request_api(
get, Path, QS, Headers, [], #{return_all => true}
),
?assertMatch(
#{<<"code">> := <<"INVALID_PARAMTER">>, <<"message">> := <<"topic_filter_invalid">>},
emqx_utils_json:decode(Body, [return_maps])
).

1
changes/fix-12141.en.md Normal file
View File

@ -0,0 +1 @@
Fixed API endpoint `/v5/topics` to return `InternalError` with HTTP status 500 by invalid topic filter.