From 2a7887adb0261f2de193154d5dba12aaf2a8a64c Mon Sep 17 00:00:00 2001 From: Norbert Kwizera Date: Mon, 18 Mar 2024 15:24:53 +0200 Subject: [PATCH] Fix button URLs for WA templates --- handlers/meta/whataspp_test.go | 2 +- handlers/meta/whatsapp/templates.go | 1 + handlers/meta/whatsapp/templates_test.go | 4 +++- 3 files changed, 5 insertions(+), 2 deletions(-) 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..9da2800ac 100644 --- a/handlers/meta/whatsapp/templates.go +++ b/handlers/meta/whatsapp/templates.go @@ -92,6 +92,7 @@ func GetTemplatePayload(templating *MsgTemplating) *Template { for _, p := range v { if p.Type == "url" { + component.SubType = "url" component.Params = append(component.Params, &Param{Type: "text", Text: p.Value}) } else { component.Params = append(component.Params, &Param{Type: "payload", Payload: p.Value}) diff --git a/handlers/meta/whatsapp/templates_test.go b/handlers/meta/whatsapp/templates_test.go index ee234650d..4a7f478f2 100644 --- a/handlers/meta/whatsapp/templates_test.go +++ b/handlers/meta/whatsapp/templates_test.go @@ -84,7 +84,8 @@ func TestGetTemplatePayload(t *testing.T) { "language": "en", "params": { "button.1": [{"type": "text", "value": "No"}], - "button.0": [{"type": "text", "value": "Yes"}, {"type": "text", "value": "Bob"}] + "button.0": [{"type": "text", "value": "Yes"}, {"type": "text", "value": "Bob"}], + "button.2": [{"type": "url", "value": "id0023"}] } }`, expected: &whatsapp.Template{ @@ -93,6 +94,7 @@ func TestGetTemplatePayload(t *testing.T) { Components: []*whatsapp.Component{ {Type: "button", SubType: "quick_reply", Index: "0", Params: []*whatsapp.Param{{Type: "payload", Payload: "Yes"}, {Type: "payload", Payload: "Bob"}}}, {Type: "button", SubType: "quick_reply", Index: "1", Params: []*whatsapp.Param{{Type: "payload", Payload: "No"}}}, + {Type: "button", SubType: "url", Index: "2", Params: []*whatsapp.Param{{Type: "text", Text: "id0023"}}}, }, }, },