refactor(api): event_message swagger spec

This commit is contained in:
JimMoen 2022-01-21 17:33:31 +08:00
parent 1a0862913e
commit ab94b49762
3 changed files with 49 additions and 30 deletions

View File

@ -21,3 +21,4 @@
-define(REPORT_INTERVAR, 604800). -define(REPORT_INTERVAR, 604800).
-define(API_TAG_MQTT, [<<"mqtt">>]). -define(API_TAG_MQTT, [<<"mqtt">>]).
-define(API_SCHEMA_MODULE, emqx_modules_schema).

View File

@ -17,37 +17,41 @@
-behaviour(minirest_api). -behaviour(minirest_api).
-export([api_spec/0]). -import(hoconsc, [mk/2, ref/2]).
-include("emqx_modules.hrl").
-export([ api_spec/0
, paths/0
, schema/1
]).
-export([event_message/2]). -export([event_message/2]).
-import(emqx_mgmt_util, [ schema/1
]).
api_spec() -> api_spec() ->
{[event_message_api()], []}. emqx_dashboard_swagger:spec(?MODULE, #{check_schema => true}).
conf_schema() -> paths() ->
emqx_mgmt_api_configs:gen_schema(emqx:get_config([event_message])). ["/mqtt/event_message"].
event_message_api() -> schema("/mqtt/event_message") ->
Path = "/mqtt/event_message", #{ 'operationId' => event_message
Metadata = #{ , get =>
get => #{ #{ description => <<"Event Message">>
description => <<"Event Message">>, , tags => ?API_TAG_MQTT
responses => #{ , responses =>
<<"200">> => schema(conf_schema()) #{200 => status_schema(<<"Get Event Message config successfully">>)}
} }
}, , put =>
put => #{ #{ description => <<"Update Event Message">>
description => <<"Update Event Message">>, , tags => ?API_TAG_MQTT
'requestBody' => schema(conf_schema()), , 'requestBody' => status_schema(<<"Update Event Message config">>)
responses => #{ , responses =>
<<"200">> => schema(conf_schema()) #{200 => status_schema(<<"Update Event Message config successfully">>)}
} }
} }.
},
{Path, Metadata, event_message}. status_schema(Desc) ->
mk(ref(?API_SCHEMA_MODULE, "event_message"), #{in => body, desc => Desc}).
event_message(get, _Params) -> event_message(get, _Params) ->
{200, emqx_event_message:list()}; {200, emqx_event_message:list()};

View File

@ -51,13 +51,27 @@ fields("rewrite") ->
fields("event_message") -> fields("event_message") ->
[ {"$event/client_connected", sc(boolean(), #{default => false})} [ { '$event/client_connected'
, {"$event/client_disconnected", sc(boolean(), #{default => false})} , sc( boolean()
, {"$event/client_subscribed", sc(boolean(), #{default => false})} , #{desc => <<"Client connected to EMQ X event">>, default => false})}
, {"$event/client_unsubscribed", sc(boolean(), #{default => false})} , { '$event/client_disconnected'
, {"$event/message_delivered", sc(boolean(), #{default => false})} , sc(boolean()
, {"$event/message_acked", sc(boolean(), #{default => false})} , #{desc => <<"Client disconnected to EMQ X event">>, default => false})}
, {"$event/message_dropped", sc(boolean(), #{default => false})} , { '$event/client_subscribed'
, sc( boolean()
, #{desc => <<"Client subscribe topic event">>, default => false})}
, { '$event/client_unsubscribed'
, sc( boolean()
, #{desc => <<"Client unsubscribe topic event">>, default => false})}
, { '$event/message_delivered'
, sc( boolean()
, #{desc => <<"Message delivered event">>, default => false})}
, { '$event/message_acked'
, sc( boolean()
, #{desc => <<"Message acked event">>, default => false})}
, { '$event/message_dropped'
, sc( boolean()
, #{desc => <<"Message dropped event">>, default => false})}
]; ];
fields("topic_metrics") -> fields("topic_metrics") ->