diff --git a/handlers/meta/whataspp_test.go b/handlers/meta/whataspp_test.go index e55b50c7f..eb43226c5 100644 --- a/handlers/meta/whataspp_test.go +++ b/handlers/meta/whataspp_test.go @@ -456,7 +456,7 @@ var whatsappOutgoingTests = []OutgoingTestCase{ }, }, ExpectedRequests: []ExpectedRequest{{ - Body: `{"messaging_product":"whatsapp","recipient_type":"individual","to":"250788123123","type":"template","template":{"name":"revive_issue","language":{"policy":"deterministic","code":"en_US"},"components":[{"type":"body","parameters":[{"type":"text","text":"Ryan Lewis"},{"type":"text","text":"niño"}]},{"type":"button","sub_type":"quick_reply","index":"0","parameters":[{"type":"payload","payload":"Sip"}]},{"type":"button","sub_type":"quick_reply","index":"1","parameters":[{"type":"text","text":"id00231"}]}]}}`, + Body: `{"messaging_product":"whatsapp","recipient_type":"individual","to":"250788123123","type":"template","template":{"name":"revive_issue","language":{"policy":"deterministic","code":"en_US"},"components":[{"type":"body","parameters":[{"type":"text","text":"Ryan Lewis"},{"type":"text","text":"niño"}]},{"type":"button","sub_type":"quick_reply","index":"0","parameters":[{"type":"payload","payload":"Sip"}]},{"type":"button","sub_type":"url","index":"1","parameters":[{"type":"text","text":"id00231"}]}]}}`, }}, ExpectedExtIDs: []string{"157b5e14568e8"}, }, diff --git a/handlers/meta/whatsapp/templates.go b/handlers/meta/whatsapp/templates.go index a01ec7969..c5e1f4413 100644 --- a/handlers/meta/whatsapp/templates.go +++ b/handlers/meta/whatsapp/templates.go @@ -64,6 +64,20 @@ func GetTemplatePayload(templating *MsgTemplating) *Template { if k == "header" { component = &Component{Type: "header"} + for _, p := range v { + if p.Type == "url" { + component := &Component{Type: "button", Index: strings.TrimPrefix(k, "button."), SubType: "url"} + component.Params = append(component.Params, &Param{Type: "text", Text: p.Value}) + template.Components = append(template.Components, component) + } else { + component := &Component{Type: "button", Index: strings.TrimPrefix(k, "button."), SubType: "quick_reply"} + component.Params = append(component.Params, &Param{Type: "payload", Payload: p.Value}) + template.Components = append(template.Components, component) + } + } + + } else if k == "header" { + component := &Component{Type: "header"} for _, p := range v { if p.Type == "image" { component.Params = append(component.Params, &Param{Type: p.Type, Image: &struct {