@@ -16,6 +16,7 @@ import (
16
16
"github.com/gomodule/redigo/redis"
17
17
"github.com/nyaruka/courier"
18
18
"github.com/nyaruka/courier/handlers"
19
+ "github.com/nyaruka/courier/handlers/meta/whatsapp"
19
20
"github.com/nyaruka/courier/utils"
20
21
"github.com/nyaruka/gocommon/httpx"
21
22
"github.com/nyaruka/gocommon/i18n"
@@ -697,7 +698,7 @@ func buildPayloads(msg courier.MsgOut, h *handler, clog *courier.ChannelLog) ([]
697
698
698
699
} else {
699
700
// do we have a template?
700
- templating , err := h . getTemplating (msg )
701
+ templating , err := whatsapp . GetTemplating (msg )
701
702
if err != nil {
702
703
return nil , errors .Wrapf (err , "unable to decode template: %s for channel: %s" , string (msg .Metadata ()), msg .Channel ().UUID ())
703
704
}
@@ -1080,45 +1081,6 @@ func (h *handler) checkWhatsAppContact(channel courier.Channel, baseURL string,
1080
1081
}
1081
1082
}
1082
1083
1083
- func (h * handler ) getTemplating (msg courier.MsgOut ) (* MsgTemplating , error ) {
1084
- if len (msg .Metadata ()) == 0 {
1085
- return nil , nil
1086
- }
1087
-
1088
- metadata := & struct {
1089
- Templating * MsgTemplating `json:"templating"`
1090
- }{}
1091
- if err := json .Unmarshal (msg .Metadata (), metadata ); err != nil {
1092
- return nil , err
1093
- }
1094
-
1095
- if metadata .Templating == nil {
1096
- return nil , nil
1097
- }
1098
-
1099
- if err := utils .Validate (metadata .Templating ); err != nil {
1100
- return nil , errors .Wrapf (err , "invalid templating definition" )
1101
- }
1102
-
1103
- return metadata .Templating , nil
1104
- }
1105
-
1106
- type MsgTemplating struct {
1107
- Template struct {
1108
- Name string `json:"name" validate:"required"`
1109
- UUID string `json:"uuid" validate:"required"`
1110
- } `json:"template" validate:"required,dive"`
1111
- Namespace string `json:"namespace"`
1112
- Components []struct {
1113
- Type string `json:"type"`
1114
- Name string `json:"name"`
1115
- Params []struct {
1116
- Type string `json:"type"`
1117
- Value string `json:"value"`
1118
- } `json:"params"`
1119
- } `json:"components"`
1120
- }
1121
-
1122
1084
func getSupportedLanguage (lc i18n.Locale ) string {
1123
1085
// look for exact match
1124
1086
if lang := supportedLanguages [lc ]; lang != "" {
0 commit comments