fix(rule): republish all available fields if payload template empty
This commit is contained in:
parent
5457e5551f
commit
ba800d853d
|
@ -82,7 +82,7 @@ republish(Selected, #{flags := Flags, metadata := #{rule_id := RuleId}},
|
||||||
topic := TopicTks,
|
topic := TopicTks,
|
||||||
payload := PayloadTks}}) ->
|
payload := PayloadTks}}) ->
|
||||||
Topic = emqx_plugin_libs_rule:proc_tmpl(TopicTks, Selected),
|
Topic = emqx_plugin_libs_rule:proc_tmpl(TopicTks, Selected),
|
||||||
Payload = emqx_plugin_libs_rule:proc_tmpl(PayloadTks, Selected),
|
Payload = format_msg(PayloadTks, Selected),
|
||||||
QoS = replace_simple_var(QoSTks, Selected, 0),
|
QoS = replace_simple_var(QoSTks, Selected, 0),
|
||||||
Retain = replace_simple_var(RetainTks, Selected, false),
|
Retain = replace_simple_var(RetainTks, Selected, false),
|
||||||
?TRACE("RULE", "republish_message", #{topic => Topic, payload => Payload}),
|
?TRACE("RULE", "republish_message", #{topic => Topic, payload => Payload}),
|
||||||
|
@ -96,7 +96,7 @@ republish(Selected, #{metadata := #{rule_id := RuleId}},
|
||||||
topic := TopicTks,
|
topic := TopicTks,
|
||||||
payload := PayloadTks}}) ->
|
payload := PayloadTks}}) ->
|
||||||
Topic = emqx_plugin_libs_rule:proc_tmpl(TopicTks, Selected),
|
Topic = emqx_plugin_libs_rule:proc_tmpl(TopicTks, Selected),
|
||||||
Payload = emqx_plugin_libs_rule:proc_tmpl(PayloadTks, Selected),
|
Payload = format_msg(PayloadTks, Selected),
|
||||||
QoS = replace_simple_var(QoSTks, Selected, 0),
|
QoS = replace_simple_var(QoSTks, Selected, 0),
|
||||||
Retain = replace_simple_var(RetainTks, Selected, false),
|
Retain = replace_simple_var(RetainTks, Selected, false),
|
||||||
?TRACE("RULE", "republish_message_with_flags", #{topic => Topic, payload => Payload}),
|
?TRACE("RULE", "republish_message_with_flags", #{topic => Topic, payload => Payload}),
|
||||||
|
@ -163,3 +163,8 @@ replace_simple_var(Tokens, Data, Default) when is_list(Tokens) ->
|
||||||
end;
|
end;
|
||||||
replace_simple_var(Val, _Data, _Default) ->
|
replace_simple_var(Val, _Data, _Default) ->
|
||||||
Val.
|
Val.
|
||||||
|
|
||||||
|
format_msg([], Selected) ->
|
||||||
|
emqx_json:encode(Selected);
|
||||||
|
format_msg(Tokens, Selected) ->
|
||||||
|
emqx_plugin_libs_rule:proc_tmpl(Tokens, Selected).
|
||||||
|
|
Loading…
Reference in New Issue