diff --git a/flows/actions/send_msg.go b/flows/actions/send_msg.go index faf86d969..45b1886ee 100644 --- a/flows/actions/send_msg.go +++ b/flows/actions/send_msg.go @@ -122,7 +122,18 @@ func (a *SendMsgAction) Execute(run flows.Run, step flows.Step, logModifier flow } evaluatedText = translation.Substitute(evaluatedVariables) - templating = flows.NewMsgTemplating(a.Templating.Template, evaluatedVariables, translation.Namespace()) + + params := make(map[string][]flows.TemplateParam, 1) + + // TODO add support for params in other components besides body + if len(evaluatedVariables) > 0 { + params["body"] = make([]flows.TemplateParam, len(evaluatedVariables)) + for i, v := range evaluatedVariables { + params["body"][i] = flows.TemplateParam{Type: "text", Value: v} + } + } + + templating = flows.NewMsgTemplating(a.Templating.Template, params, translation.Namespace()) locale = translation.Locale() } } diff --git a/flows/msg.go b/flows/msg.go index b5dcc174c..6d863cd71 100644 --- a/flows/msg.go +++ b/flows/msg.go @@ -190,16 +190,7 @@ func (t MsgTemplating) Namespace() string { return t.Namespace_ } func (t MsgTemplating) Params() map[string][]TemplateParam { return t.Params_ } // NewMsgTemplating creates and returns a new msg template -func NewMsgTemplating(template *assets.TemplateReference, variables []string, namespace string) *MsgTemplating { - params := make(map[string][]TemplateParam, 1) - - // TODO add support for params in other components besides body - if len(variables) > 0 { - params["body"] = make([]TemplateParam, len(variables)) - for i, v := range variables { - params["body"][i] = TemplateParam{Type: "text", Value: v} - } - } +func NewMsgTemplating(template *assets.TemplateReference, params map[string][]TemplateParam, namespace string) *MsgTemplating { return &MsgTemplating{Template_: template, Namespace_: namespace, Params_: params} } diff --git a/flows/msg_test.go b/flows/msg_test.go index 83c98b5a9..57bce3117 100644 --- a/flows/msg_test.go +++ b/flows/msg_test.go @@ -163,7 +163,7 @@ func TestMsgTemplating(t *testing.T) { templateRef := assets.NewTemplateReference("61602f3e-f603-4c70-8a8f-c477505bf4bf", "Affirmation") - msgTemplating := flows.NewMsgTemplating(templateRef, []string{"Ryan Lewis", "boy"}, "0162a7f4_dfe4_4c96_be07_854d5dba3b2b") + msgTemplating := flows.NewMsgTemplating(templateRef, map[string][]flows.TemplateParam{"body": {{Type: "text", Value: "Ryan Lewis"}, {Type: "text", Value: "boy"}}}, "0162a7f4_dfe4_4c96_be07_854d5dba3b2b") assert.Equal(t, templateRef, msgTemplating.Template()) assert.Equal(t, "0162a7f4_dfe4_4c96_be07_854d5dba3b2b", msgTemplating.Namespace())