From feec3f8df61570c3e17e5b74a842047373fe2dfe Mon Sep 17 00:00:00 2001 From: "rostyslav.rigroup@gmail.com" Date: Thu, 11 Feb 2021 13:18:59 +0200 Subject: [PATCH] Contact & Location messages added --- message.go | 17 +++++++++++++++++ viber.go | 16 ++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/message.go b/message.go index 0a7eb33..123b514 100644 --- a/message.go +++ b/message.go @@ -67,6 +67,23 @@ type VideoMessage struct { Duration uint `json:"duration,omitempty"` } +type ContactMessage struct { + TextMessage + Contact struct { + Name string `json:"name"` + PhoneNumber string `json:"phone_number"` + } `json:"contact"` +} + +type LocationMessage struct { + TextMessage + Location struct { + Lat float64 `json:"lat"` + Lon float64 `json:"lon"` + } `json:"location"` +} + + // MessageType for viber messaging type MessageType string diff --git a/viber.go b/viber.go index 71db2a4..80c4c39 100644 --- a/viber.go +++ b/viber.go @@ -189,9 +189,21 @@ func (v *Viber) ServeHTTP(w http.ResponseWriter, r *http.Request) { go v.Message(v, u, &m, e.MessageToken, e.Timestamp.Time) case "contact": - // TODO + var m ContactMessage + if err := json.Unmarshal(e.Message, &m); err != nil { + Log.Println(err) + return + } + go v.Message(v, u, &m, e.MessageToken, e.Timestamp.Time) + case "location": - // TODO + var m LocationMessage + if err := json.Unmarshal(e.Message, &m); err != nil { + Log.Println(err) + return + } + go v.Message(v, u, &m, e.MessageToken, e.Timestamp.Time) + default: return }