From eea0ec135fdf440e3debaafd47773dbf863cf4f7 Mon Sep 17 00:00:00 2001 From: JianBo He Date: Thu, 11 Jan 2024 10:36:55 +0800 Subject: [PATCH] fix(delayed): fix http 500 error --- apps/emqx_modules/src/emqx_delayed_api.erl | 6 ++++++ .../test/emqx_delayed_api_SUITE.erl | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/apps/emqx_modules/src/emqx_delayed_api.erl b/apps/emqx_modules/src/emqx_delayed_api.erl index c4b86eeb3..f6ea99c12 100644 --- a/apps/emqx_modules/src/emqx_delayed_api.erl +++ b/apps/emqx_modules/src/emqx_delayed_api.erl @@ -329,6 +329,12 @@ generate_http_code_map(message_not_found, Topic) -> message => iolist_to_binary(io_lib:format("Not found messages for ~s", [Topic])) }; +generate_http_code_map(invalid_topic_name, Topic) -> + #{ + code => ?INVALID_TOPIC, + message => + iolist_to_binary(io_lib:format("The topic name ~s is invalid", [Topic])) + }; generate_http_code_map(invalid_node, Node) -> #{ code => ?INVALID_NODE, diff --git a/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl b/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl index 3934c3a1a..d1e747b19 100644 --- a/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl +++ b/apps/emqx_modules/test/emqx_delayed_api_SUITE.erl @@ -211,6 +211,25 @@ t_delete_messages_via_topic(_) -> %% assert: messages are deleted ?assertEqual([], get_messages(0)), + + %% assert: return 400 if the topic parameter is invalid + TopicFilter = uri_string:quote(<<"t/#">>), + ?assertMatch( + {ok, 400, _}, + request( + delete, + uri(["mqtt", "delayed", "messages", TopicFilter]) + ) + ), + + %% assert: return 404 if no messages found for the topic + ?assertMatch( + {ok, 404, _}, + request( + delete, + uri(["mqtt", "delayed", "messages", TopicInUrl]) + ) + ), ok. t_large_payload(_) ->