Merge pull request #12608 from lafirest/fix/iotdb

fix(iotdb): fix function clause error when there is no `payload` field
This commit is contained in:
lafirest 2024-02-28 22:00:54 +08:00 committed by GitHub
commit eaef753c36
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 9 additions and 6 deletions

View File

@ -1,7 +1,7 @@
%% -*- mode: erlang -*-
{application, emqx_bridge_iotdb, [
{description, "EMQX Enterprise Apache IoTDB Bridge"},
{vsn, "0.1.5"},
{vsn, "0.1.6"},
{modules, [
emqx_bridge_iotdb,
emqx_bridge_iotdb_connector

View File

@ -367,6 +367,8 @@ on_get_channel_status(_InstanceId, ChannelId, #{channels := Channels}) ->
get_payload(#{payload := Payload}) ->
Payload;
get_payload(#{<<"payload">> := Payload}) ->
Payload;
get_payload(Payload) ->
Payload.
parse_payload(ParsedPayload) when is_map(ParsedPayload) ->
@ -694,7 +696,7 @@ render_channel_message(#{is_aligned := IsAligned} = Channel, IoTDBVsn, Message)
DeviceId ->
case get_data_template(Channel, Payloads) of
[] ->
{error, invalid_data};
{error, invalid_template};
DataTemplate ->
case proc_data(DataTemplate, Message) of
{ok, DataList} ->

View File

@ -502,11 +502,11 @@ t_extract_device_id_from_rule_engine_message(Config) ->
),
ok.
t_sync_invalid_data(Config) ->
t_sync_invalid_template(Config) ->
emqx_bridge_v2_testlib:t_sync_query(
Config,
make_message_fun(iotdb_topic(Config), #{foo => bar, device_id => <<"root.sg27">>}),
is_error_check(invalid_data),
is_error_check(invalid_template),
iotdb_bridge_on_query
).
@ -518,11 +518,11 @@ t_async_device_id_missing(Config) ->
iotdb_bridge_on_query_async
).
t_async_invalid_data(Config) ->
t_async_invalid_template(Config) ->
emqx_bridge_v2_testlib:t_async_query(
Config,
make_message_fun(iotdb_topic(Config), #{foo => bar, device_id => <<"root.sg27">>}),
is_error_check(invalid_data),
is_error_check(invalid_template),
iotdb_bridge_on_query_async
).

View File

@ -0,0 +1 @@
Fixed a `function_clause` error for IoTDB action when there is no `payload` field in the query data.