diff --git a/go.mod b/go.mod index 054f9e6..a846926 100644 --- a/go.mod +++ b/go.mod @@ -44,8 +44,8 @@ require ( github.com/op/go-logging v0.0.0-20160315200505-970db520ece7 github.com/pkg/errors v0.8.0 github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/retailcrm/api-client-go v1.1.0 - github.com/retailcrm/mg-transport-api-client-go v1.1.24 + github.com/retailcrm/api-client-go v1.1.1 + github.com/retailcrm/mg-transport-api-client-go v1.1.26 github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf // indirect github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a // indirect github.com/stevvooe/resumable v0.0.0-20180830230917-22b14a53ba50 // indirect diff --git a/go.sum b/go.sum index 50ac78c..dd88267 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,12 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/retailcrm/api-client-go v1.1.0 h1:APPO6ccJAeMV7Jz7BhrtDKSOm2r1j5Ft6fuEXNP2ij4= github.com/retailcrm/api-client-go v1.1.0/go.mod h1:QRoPE2SM6ST7i2g0yEdqm7Iw98y7cYuq3q14Ot+6N8c= +github.com/retailcrm/api-client-go v1.1.1 h1:yqsyYjBDdmDwExVlTdGucY9/IpEokXpkfTfA6z5AZ7M= +github.com/retailcrm/api-client-go v1.1.1/go.mod h1:QRoPE2SM6ST7i2g0yEdqm7Iw98y7cYuq3q14Ot+6N8c= github.com/retailcrm/mg-transport-api-client-go v1.1.24 h1:8VdiyhCYgEhKwlXvvuJdsOMquNXEcqtHBVzDojNHxNg= github.com/retailcrm/mg-transport-api-client-go v1.1.24/go.mod h1:AWV6BueE28/6SCoyfKURTo4lF0oXYoOKmHTzehd5vAI= +github.com/retailcrm/mg-transport-api-client-go v1.1.26 h1:eZJOg7jKbsp1Mo8zSPx+XSWLYJ654jsl4zyHstk4DkQ= +github.com/retailcrm/mg-transport-api-client-go v1.1.26/go.mod h1:AWV6BueE28/6SCoyfKURTo4lF0oXYoOKmHTzehd5vAI= github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf h1:6V1qxN6Usn4jy8unvggSJz/NC790tefw8Zdy6OZS5co= github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a h1:JSvGDIbmil4Ui/dDdFBExb7/cmkNjyX5F97oglmvCDo= diff --git a/src/routing.go b/src/routing.go index a009e75..e757807 100644 --- a/src/routing.go +++ b/src/routing.go @@ -705,7 +705,7 @@ func mgWebhookHandler(c *gin.Context) { case v1.MsgTypeText: mb = replaceMarkdownSymbols(msg.Data.Content) case v1.MsgTypeImage: - m, err = photoMessage(*msg.Data.Items, mgClient, cid) + m, err = photoMessage(msg.Data, mgClient, cid) if err != nil { logger.Errorf( "GetFile request apiURL: %s, clientID: %s, err: %s", @@ -911,7 +911,9 @@ func getOrderMessage(dataOrder *v1.MessageDataOrder) string { return mb } -func photoMessage(items []v1.FileItem, mgClient *v1.MgClient, cid int64) (chattable tgbotapi.Chattable, err error) { +func photoMessage(webhookData v1.WebhookData, mgClient *v1.MgClient, cid int64) (chattable tgbotapi.Chattable, err error) { + items := *webhookData.Items + if len(items) == 1 { v := items @@ -923,7 +925,7 @@ func photoMessage(items []v1.FileItem, mgClient *v1.MgClient, cid int64) (chatta msg := tgbotapi.NewPhotoUpload(cid, nil) msg.FileID = file.Url msg.UseExisting = true - msg.Caption = v[0].Caption + msg.Caption = webhookData.Content chattable = msg } else if len(items) > 1 { @@ -940,7 +942,7 @@ func photoMessage(items []v1.FileItem, mgClient *v1.MgClient, cid int64) (chatta } ip := tgbotapi.NewInputMediaPhoto(file.Url) - ip.Caption = v.Caption + ip.Caption = webhookData.Content it = append(it, ip) } @@ -991,9 +993,8 @@ func textMessage(cid int64, mb string, quoteExternalID string) (chattable tgbota func setAttachment(attachments *tgbotapi.Message, client *v1.MgClient, snd *v1.SendData, botToken string) error { var ( - items []v1.Item - fileID string - caption string + items []v1.Item + fileID string ) t := getMessageID(attachments) @@ -1002,6 +1003,8 @@ func setAttachment(attachments *tgbotapi.Message, client *v1.MgClient, snd *v1.S return err } + caption := getLocalizedMessage(t) + switch t { case "photo": for _, v := range *attachments.Photo { @@ -1009,7 +1012,6 @@ func setAttachment(attachments *tgbotapi.Message, client *v1.MgClient, snd *v1.S } snd.Message.Type = v1.MsgTypeImage - caption = attachments.Caption case "document": fileID = attachments.Document.FileID snd.Message.Type = v1.MsgTypeFile @@ -1017,7 +1019,6 @@ func setAttachment(attachments *tgbotapi.Message, client *v1.MgClient, snd *v1.S case "sticker": fileID = attachments.Sticker.FileID snd.Message.Type = v1.MsgTypeImage - caption = attachments.Caption default: snd.Message.Text = getLocalizedMessage(t) } @@ -1054,6 +1055,7 @@ func setAttachment(attachments *tgbotapi.Message, client *v1.MgClient, snd *v1.S if len(items) > 0 { snd.Message.Items = items + snd.Message.Text = attachments.Caption } return nil