fix(mqtt_bridge): fix schema

This commit is contained in:
Thales Macedo Garitezi 2023-12-19 17:44:19 -03:00
parent 139da6d720
commit 7befe898d0
2 changed files with 20 additions and 22 deletions

View File

@ -76,14 +76,6 @@ fields("config_connector") ->
}
)},
{description, emqx_schema:description_schema()},
{resource_opts,
mk(
hoconsc:ref(creation_opts),
#{
required => false,
desc => ?DESC(emqx_resource_schema, "creation_opts")
}
)},
{pool_size, fun egress_pool_size/1}
% {ingress,
% mk(
@ -95,8 +87,9 @@ fields("config_connector") ->
% desc => ?DESC("ingress_desc")
% }
% )}
] ++ fields("server_configs");
fields(creation_opts) ->
] ++ emqx_connector_schema:resource_opts_ref(?MODULE, resource_opts) ++
fields("server_configs");
fields(resource_opts) ->
emqx_connector_schema:resource_opts_fields();
fields("server_configs") ->
[

View File

@ -52,13 +52,8 @@ make_connector_config_from_bridge_v1_config(Config) ->
|| {FieldName, _} <- ConnectorConfigSchema
],
ConnectorConfigMap = maps:with(ConnectorTopFields, Config),
ResourceOptsSchema = emqx_bridge_mqtt_connector_schema:fields(creation_opts),
ResourceOptsTopFields = [
erlang:atom_to_binary(FieldName, utf8)
|| {FieldName, _} <- ResourceOptsSchema
],
ResourceOptsMap = maps:get(<<"resource_opts">>, ConnectorConfigMap, #{}),
ResourceOptsMap2 = maps:with(ResourceOptsTopFields, ResourceOptsMap),
ResourceOptsMap2 = emqx_connector_schema:project_to_connector_resource_opts(ResourceOptsMap),
ConnectorConfigMap2 = maps:put(<<"resource_opts">>, ResourceOptsMap2, ConnectorConfigMap),
IngressMap0 = maps:get(<<"ingress">>, Config, #{}),
EgressMap = maps:get(<<"egress">>, Config, #{}),
@ -190,7 +185,13 @@ connector_action_config_to_bridge_v1_config(
Params = maps:get(<<"parameters">>, ActionConfig, #{}),
ResourceOptsConnector = maps:get(<<"resource_opts">>, ConnectorConfig, #{}),
ResourceOptsAction = maps:get(<<"resource_opts">>, ActionConfig, #{}),
ResourceOpts = maps:merge(ResourceOptsConnector, ResourceOptsAction),
ResourceOpts0 = maps:merge(ResourceOptsConnector, ResourceOptsAction),
V1ResourceOptsFields =
lists:map(
fun({Field, _}) -> atom_to_binary(Field) end,
emqx_bridge_mqtt_schema:fields("creation_opts")
),
ResourceOpts = maps:with(V1ResourceOptsFields, ResourceOpts0),
%% Check the direction of the action
Direction =
case maps:get(<<"remote">>, Params) of
@ -212,11 +213,15 @@ connector_action_config_to_bridge_v1_config(
#{<<"egress">> => Parms3};
{<<"publisher">>, LocalT} ->
#{
<<"egress">> => Parms3,
<<"local">> =>
#{
<<"topic">> => LocalT
}
<<"egress">> =>
maps:merge(
Parms3, #{
<<"local">> =>
#{
<<"topic">> => LocalT
}
}
)
};
{<<"subscriber">>, _} ->
#{<<"ingress">> => Parms3}