fix(api): sub api return meta

This commit is contained in:
zhongwencool 2022-01-20 17:42:05 +08:00
parent 964a77510d
commit f36791bab9
2 changed files with 26 additions and 4 deletions

View File

@ -30,6 +30,10 @@
-export([do_query/5]).
-export([ page/1
, limit/1
]).
paginate(Tables, Params, RowFun) ->
Qh = query_handle(Tables),
Count = count(Tables),

View File

@ -64,8 +64,10 @@ list(Bindings, Params) when map_size(Bindings) == 0 ->
case proplists:get_value(<<"topic">>, Params) of
undefined ->
minirest:return({ok, emqx_mgmt_api:cluster_query(Params, ?SUBS_QS_SCHEMA, ?query_fun)});
Topic ->
minirest:return({ok, emqx_mgmt:list_subscriptions_via_topic(emqx_mgmt_util:urldecode(Topic), ?format_fun)})
Topic0 ->
Topic = emqx_mgmt_util:urldecode(Topic0),
Data = emqx_mgmt:list_subscriptions_via_topic(Topic, ?format_fun),
minirest:return({ok, add_meta(Params, Data)})
end;
list(#{node := Node} = Bindings, Params) ->
@ -80,10 +82,26 @@ list(#{node := Node} = Bindings, Params) ->
Res -> Res
end
end;
Topic ->
minirest:return({ok, emqx_mgmt:list_subscriptions_via_topic(Node, emqx_mgmt_util:urldecode(Topic), ?format_fun)})
Topic0 ->
Topic = emqx_mgmt_util:urldecode(Topic0),
Data = emqx_mgmt:list_subscriptions_via_topic(Node, Topic, ?format_fun),
minirest:return({ok, add_meta(Params, Data)})
end.
add_meta(Params, List) ->
Page = emqx_mgmt_api:page(Params),
Limit = emqx_mgmt_api:limit(Params),
Data = lists:sublist(List, (Page - 1) * Limit + 1, Limit),
#{meta => #{
page => Page,
limit => Limit,
hasnext => erlang:length(Data) >= Limit,
count => erlang:length(List)
},
data => Data,
code => 0
}.
lookup(#{node := Node, clientid := ClientId}, _Params) ->
minirest:return({ok, emqx_mgmt:lookup_subscriptions(Node, emqx_mgmt_util:urldecode(ClientId), ?format_fun)});