fix(bridge_schema): ensure atom exists

This commit is contained in:
Zaiming Shi 2021-09-04 23:06:12 +02:00
parent 6f99f14540
commit 687114eeb1
1 changed files with 7 additions and 8 deletions

View File

@ -14,13 +14,12 @@ fields("emqx_data_bridge") ->
[{bridges, #{type => hoconsc:array(hoconsc:union(?BRIDGES)),
default => []}}];
fields(mysql) -> connector_fields(mysql);
fields(pgsql) -> connector_fields(pgsql);
fields(mongo) -> connector_fields(mongo);
fields(redis) -> connector_fields(redis);
fields(ldap) -> connector_fields(ldap).
fields(mysql) -> connector_fields(emqx_connector_mysql, mysql);
fields(pgsql) -> connector_fields(emqx_connector_pgsql, pgsql);
fields(mongo) -> connector_fields(emqx_connector_mongo, mongo);
fields(redis) -> connector_fields(emqx_connector_redis, redis);
fields(ldap) -> connector_fields(emqx_connector_ldap, ldap).
connector_fields(DB) ->
Mod = list_to_existing_atom(io_lib:format("~s_~s",[emqx_connector, DB])),
connector_fields(ConnectModule, DB) ->
[{name, hoconsc:mk(typerefl:binary())},
{type, #{type => DB}}] ++ Mod:roots().
{type, #{type => DB}}] ++ ConnectModule:roots().