fix(emqx_retainer): return 404 in delete if topic not found
This commit is contained in:
parent
80e4ffff75
commit
1110b5d8f5
|
@ -2,7 +2,7 @@
|
||||||
{application, emqx_retainer, [
|
{application, emqx_retainer, [
|
||||||
{description, "EMQX Retainer"},
|
{description, "EMQX Retainer"},
|
||||||
% strict semver, bump manually!
|
% strict semver, bump manually!
|
||||||
{vsn, "5.0.14"},
|
{vsn, "5.0.15"},
|
||||||
{modules, []},
|
{modules, []},
|
||||||
{registered, [emqx_retainer_sup]},
|
{registered, [emqx_retainer_sup]},
|
||||||
{applications, [kernel, stdlib, emqx, emqx_ctl]},
|
{applications, [kernel, stdlib, emqx, emqx_ctl]},
|
||||||
|
|
|
@ -102,6 +102,7 @@ schema(?PREFIX ++ "/message/:topic") ->
|
||||||
parameters => parameters(),
|
parameters => parameters(),
|
||||||
responses => #{
|
responses => #{
|
||||||
204 => <<>>,
|
204 => <<>>,
|
||||||
|
404 => error_codes(['NOT_FOUND'], ?DESC(message_not_exist)),
|
||||||
400 => error_codes(
|
400 => error_codes(
|
||||||
['BAD_REQUEST'],
|
['BAD_REQUEST'],
|
||||||
?DESC(unsupported_backend)
|
?DESC(unsupported_backend)
|
||||||
|
@ -187,8 +188,16 @@ with_topic(get, #{bindings := Bindings}) ->
|
||||||
end;
|
end;
|
||||||
with_topic(delete, #{bindings := Bindings}) ->
|
with_topic(delete, #{bindings := Bindings}) ->
|
||||||
Topic = maps:get(topic, Bindings),
|
Topic = maps:get(topic, Bindings),
|
||||||
emqx_retainer_mnesia:delete_message(undefined, Topic),
|
case emqx_retainer_mnesia:page_read(undefined, Topic, 1, 1) of
|
||||||
{204}.
|
{ok, []} ->
|
||||||
|
{404, #{
|
||||||
|
code => <<"NOT_FOUND">>,
|
||||||
|
message => <<"Viewed message doesn't exist">>
|
||||||
|
}};
|
||||||
|
{ok, _} ->
|
||||||
|
emqx_retainer_mnesia:delete_message(undefined, Topic),
|
||||||
|
{204}
|
||||||
|
end.
|
||||||
|
|
||||||
format_message(#message{
|
format_message(#message{
|
||||||
id = ID,
|
id = ID,
|
||||||
|
|
|
@ -218,6 +218,7 @@ t_lookup_and_delete(_) ->
|
||||||
{ok, []} = request_api(delete, API),
|
{ok, []} = request_api(delete, API),
|
||||||
|
|
||||||
{error, {"HTTP/1.1", 404, "Not Found"}} = request_api(get, API),
|
{error, {"HTTP/1.1", 404, "Not Found"}} = request_api(get, API),
|
||||||
|
{error, {"HTTP/1.1", 404, "Not Found"}} = request_api(delete, API),
|
||||||
|
|
||||||
ok = emqtt:disconnect(C1).
|
ok = emqtt:disconnect(C1).
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue