fix(kafka): fix api methods schemas and bridge type enum

This commit is contained in:
Thales Macedo Garitezi 2023-03-08 11:29:12 -03:00
parent fecc08bb8f
commit 27dfd98f46
2 changed files with 31 additions and 15 deletions

View File

@ -15,7 +15,8 @@
api_schemas(Method) -> api_schemas(Method) ->
[ [
ref(emqx_ee_bridge_gcp_pubsub, Method), ref(emqx_ee_bridge_gcp_pubsub, Method),
ref(emqx_ee_bridge_kafka, Method), ref(emqx_ee_bridge_kafka, Method ++ "_consumer"),
ref(emqx_ee_bridge_kafka, Method ++ "_producer"),
ref(emqx_ee_bridge_mysql, Method), ref(emqx_ee_bridge_mysql, Method),
ref(emqx_ee_bridge_pgsql, Method), ref(emqx_ee_bridge_pgsql, Method),
ref(emqx_ee_bridge_mongodb, Method ++ "_rs"), ref(emqx_ee_bridge_mongodb, Method ++ "_rs"),
@ -147,9 +148,9 @@ kafka_structs() ->
{Type, {Type,
mk( mk(
hoconsc:map(name, ref(emqx_ee_bridge_kafka, Type)), hoconsc:map(name, ref(emqx_ee_bridge_kafka, Type)),
#{desc => <<"EMQX Enterprise Config">>, required => false} #{desc => <<"Kafka ", Name/binary, " Bridge Config">>, required => false}
)} )}
|| Type <- [kafka_producer, kafka_consumer] || {Type, Name} <- [{kafka_producer, <<"Producer">>}, {kafka_consumer, <<"Consumer">>}]
]. ].
influxdb_structs() -> influxdb_structs() ->

View File

@ -36,8 +36,14 @@
conn_bridge_examples(Method) -> conn_bridge_examples(Method) ->
[ [
#{ #{
<<"kafka">> => #{ <<"kafka_producer">> => #{
summary => <<"Kafka Bridge">>, summary => <<"Kafka Producer Bridge">>,
value => values(Method)
}
},
#{
<<"kafka_consumer">> => #{
summary => <<"Kafka Consumer Bridge">>,
value => values(Method) value => values(Method)
} }
} }
@ -60,14 +66,18 @@ host_opts() ->
namespace() -> "bridge_kafka". namespace() -> "bridge_kafka".
roots() -> ["config"]. roots() -> ["config_consumer", "config_producer"].
fields("post") -> fields("post_" ++ Type) ->
[type_field(), name_field() | fields("config")]; [type_field(), name_field() | fields("config_" ++ Type)];
fields("put") -> fields("put_" ++ Type) ->
fields("config"); fields("config_" ++ Type);
fields("get") -> fields("get_" ++ Type) ->
emqx_bridge_schema:status_fields() ++ fields("post"); emqx_bridge_schema:status_fields() ++ fields("post_" ++ Type);
fields("config_producer") ->
fields(kafka_producer);
fields("config_consumer") ->
fields(kafka_consumer);
fields(kafka_producer) -> fields(kafka_producer) ->
fields("config") ++ fields(producer_opts); fields("config") ++ fields(producer_opts);
fields(kafka_consumer) -> fields(kafka_consumer) ->
@ -292,8 +302,12 @@ fields(consumer_kafka_opts) ->
desc("config") -> desc("config") ->
?DESC("desc_config"); ?DESC("desc_config");
desc(Method) when Method =:= "get"; Method =:= "put"; Method =:= "post" -> desc("get_" ++ Type) when Type =:= "consumer"; Type =:= "producer" ->
["Configuration for Kafka using `", string:to_upper(Method), "` method."]; ["Configuration for Kafka using `GET` method."];
desc("put_" ++ Type) when Type =:= "consumer"; Type =:= "producer" ->
["Configuration for Kafka using `PUT` method."];
desc("post_" ++ Type) when Type =:= "consumer"; Type =:= "producer" ->
["Configuration for Kafka using `POST` method."];
desc(Name) -> desc(Name) ->
lists:member(Name, struct_names()) orelse throw({missing_desc, Name}), lists:member(Name, struct_names()) orelse throw({missing_desc, Name}),
?DESC(Name). ?DESC(Name).
@ -317,7 +331,8 @@ struct_names() ->
%% ------------------------------------------------------------------------------------------------- %% -------------------------------------------------------------------------------------------------
%% internal %% internal
type_field() -> type_field() ->
{type, mk(enum([kafka]), #{required => true, desc => ?DESC("desc_type")})}. {type,
mk(enum([kafka_consumer, kafka_producer]), #{required => true, desc => ?DESC("desc_type")})}.
name_field() -> name_field() ->
{name, mk(binary(), #{required => true, desc => ?DESC("desc_name")})}. {name, mk(binary(), #{required => true, desc => ?DESC("desc_name")})}.