From 99d0e45ffd20a5ab9c9ca4e032da0be7960fe0ab Mon Sep 17 00:00:00 2001 From: Ruslan Efanov Date: Fri, 30 Jun 2023 16:01:07 +0300 Subject: [PATCH] add fields in TemplateInfo model for message with template --- v1/types.go | 18 ++++++++++++------ v1/types_test.go | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 6 deletions(-) diff --git a/v1/types.go b/v1/types.go index b2e3187..eb726d2 100644 --- a/v1/types.go +++ b/v1/types.go @@ -172,10 +172,10 @@ type ChannelSettingsSuggestions struct { // FullFileResponse uploaded file data. type FullFileResponse struct { - ID string `json:"id,omitempty"` - Type string `json:"type,omitempty"` - Size int `json:"size,omitempty"` - Url string `json:"url,omitempty"` + ID string `json:"id,omitempty"` + Type string `json:"type,omitempty"` + Size int `json:"size,omitempty"` + URL string `json:"url,omitempty"` MimeType string `json:"mime_type,omitempty"` } @@ -447,8 +447,14 @@ type Suggestion struct { } type TemplateInfo struct { - Code string `json:"code,omitempty"` - Args []string `json:"args,omitempty"` + Code string `json:"code"` + Name string `json:"name"` + Namespace string `json:"namespace"` + Lang string `json:"lang"` + HeaderParams *HeaderParams `json:"headerParams,omitempty"` + Footer string `json:"footer,omitempty"` + ButtonParams []ButtonParam `json:"buttonParams,omitempty"` + Args []string `json:"args,omitempty"` } // FileItem struct. diff --git a/v1/types_test.go b/v1/types_test.go index e504b7e..2d4d7f5 100644 --- a/v1/types_test.go +++ b/v1/types_test.go @@ -170,3 +170,43 @@ func TestTransportErrorResponse(t *testing.T) { } }) } + +func TestTemplateInfoUnmarshal(t *testing.T) { + tmplJSON := `{ + "code": "namespace#BABA_JABA#ru", + "name": "BABA_JABA", + "lang": "ru", + "namespace": "namespace", + "args": ["BABA", "JABA"], + "headerParams": { + "textVars": ["Hey", "Jony"], + "imageUrl": "https://example.com/intaro/ddd22", + "videoUrl": "https://example.com/intaro/ddd23", + "documentUrl": "https://example.com/intaro/ddd24" + }, + "footer": "Scooter", + "buttonParams": [ + { + "urlParameter": "ququq", + "type": "URL", + "text": "CHUCHUH" + } + ] + }` + + var tmpl TemplateInfo + assert.NoError(t, json.Unmarshal([]byte(tmplJSON), &tmpl)) + assert.Equal(t, "namespace#BABA_JABA#ru", tmpl.Code) + assert.Equal(t, "namespace", tmpl.Namespace) + assert.Equal(t, "BABA_JABA", tmpl.Name) + assert.Equal(t, "ru", tmpl.Lang) + assert.Equal(t, []string{"BABA", "JABA"}, tmpl.Args) + assert.Equal(t, []string{"Hey", "Jony"}, tmpl.HeaderParams.TextVars) + assert.Equal(t, "https://example.com/intaro/ddd22", tmpl.HeaderParams.ImageURL) + assert.Equal(t, "https://example.com/intaro/ddd23", tmpl.HeaderParams.VideoURL) + assert.Equal(t, "https://example.com/intaro/ddd24", tmpl.HeaderParams.DocumentURL) + assert.Equal(t, "Scooter", tmpl.Footer) + assert.Equal(t, "URL", string(tmpl.ButtonParams[0].ButtonType)) + assert.Equal(t, "ququq", tmpl.ButtonParams[0].URLParameter) + assert.Equal(t, "CHUCHUH", tmpl.ButtonParams[0].Text) +}