fix(mgmt): add subscribe options into the result of the client subscriptions API

This commit is contained in:
firest 2022-04-27 11:37:58 +08:00
parent 6b84016259
commit 8d01e8a697
2 changed files with 34 additions and 6 deletions

View File

@ -564,12 +564,14 @@ subscriptions(get, #{bindings := #{clientid := ClientID}}) ->
{Node, Subs} ->
Formatter =
fun({Topic, SubOpts}) ->
#{
node => Node,
clientid => ClientID,
topic => Topic,
qos => maps:get(qos, SubOpts)
}
maps:merge(
#{
node => Node,
clientid => ClientID,
topic => Topic
},
maps:with([qos, nl, rap, rh], SubOpts)
)
end,
{200, lists:map(Formatter, Subs)}
end.

View File

@ -105,6 +105,32 @@ t_clients(_) ->
?assertEqual(AfterSubTopic, Topic),
?assertEqual(AfterSubQos, Qos),
%% get /clients/:clientid/subscriptions
SubscriptionsPath = emqx_mgmt_api_test_util:api_path([
"clients",
binary_to_list(ClientId1),
"subscriptions"
]),
{ok, SubscriptionsRes} = emqx_mgmt_api_test_util:request_api(
get,
SubscriptionsPath,
"",
AuthHeader
),
[SubscriptionsData] = emqx_json:decode(SubscriptionsRes, [return_maps]),
?assertMatch(
#{
<<"clientid">> := ClientId1,
<<"nl">> := _,
<<"rap">> := _,
<<"rh">> := _,
<<"node">> := _,
<<"qos">> := Qos,
<<"topic">> := Topic
},
SubscriptionsData
),
%% post /clients/:clientid/unsubscribe
UnSubscribePath = emqx_mgmt_api_test_util:api_path([
"clients",