Skip to content

Commit

Permalink
Add Log package logger
Browse files Browse the repository at this point in the history
  • Loading branch information
mileusna committed Jun 23, 2017
1 parent f46e22b commit 599cbb7
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 44 deletions.
31 changes: 0 additions & 31 deletions message.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ func (v *Viber) sendMessage(url string, m interface{}) (msgToken uint64, err err
if err != nil {
return 0, err
}
fmt.Println(string(b))
return parseMsgResponse(b)
}

Expand Down Expand Up @@ -283,37 +282,7 @@ func (m *TextMessage) SetReceiver(r string) {
m.Receiver = r
}

// SetReceiver for url message
func (m *URLMessage) SetReceiver(r string) {
m.Receiver = r
}

// SetReceiver for picture message
func (m *PictureMessage) SetReceiver(r string) {
m.Receiver = r
}

// SetReceiver for video message
func (m *VideoMessage) SetReceiver(r string) {
m.Receiver = r
}

// SetFrom to text message for public account message
func (m *TextMessage) SetFrom(from string) {
m.From = from
}

// SetFrom to url message for public account message
func (m *URLMessage) SetFrom(from string) {
m.From = from
}

// SetFrom to picture message for public account message
func (m *PictureMessage) SetFrom(from string) {
m.From = from
}

// SetFrom to video message for public account message
func (m *VideoMessage) SetFrom(from string) {
m.From = from
}
3 changes: 1 addition & 2 deletions request.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import (
"bytes"
"encoding/json"
"io/ioutil"
"log"
"net/http"
)

Expand All @@ -15,7 +14,7 @@ func (v *Viber) PostData(url string, i interface{}) ([]byte, error) {
return nil, err
}

log.Println(string(b))
Log.Println("Post data:", string(b))

req, err := http.NewRequest("POST", url, bytes.NewBuffer(b))
req.Close = true
Expand Down
19 changes: 18 additions & 1 deletion viber.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"encoding/hex"
"encoding/json"
"io/ioutil"
"log"
"net/http"
"regexp"
"strings"
Expand Down Expand Up @@ -53,24 +54,33 @@ type Viber struct {
Failed func(v *Viber, userID string, token uint64, descr string, t time.Time)
}

var regexpPeekMsgType = regexp.MustCompile("\"type\":\\s*\"(.*)\"")
var (
// Log errors, set to logger if you want to log package activities and errors
Log = log.New(ioutil.Discard, "Viber >>", 0)
regexpPeekMsgType = regexp.MustCompile("\"type\":\\s*\"(.*)\"")
)

// ServeHTTP
// https://developers.viber.com/docs/api/rest-bot-api/#callbacks
func (v *Viber) ServeHTTP(w http.ResponseWriter, r *http.Request) {

body, err := ioutil.ReadAll(r.Body)
if err != nil {
Log.Println(err)
return
}
r.Body.Close()

Log.Println("Received from Viber:", string(body))

if !v.checkHMAC(body, r.Header.Get("X-Viber-Content-Signature")) {
Log.Println("X-Viber-Content-Signature doesn't match")
return
}

var e event
if err := json.Unmarshal(body, &e); err != nil {
Log.Println(err)
return
}

Expand All @@ -79,6 +89,7 @@ func (v *Viber) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if v.Subscribed != nil {
var u User
if err := json.Unmarshal(e.User, &u); err != nil {
Log.Println(err)
return
}
go v.Subscribed(v, u, e.MessageToken, e.Timestamp.Time)
Expand All @@ -93,6 +104,7 @@ func (v *Viber) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if v.ConversationStarted != nil {
var u User
if err := json.Unmarshal(e.User, &u); err != nil {
Log.Println(err)
return
}
if msg := v.ConversationStarted(v, u, e.Type, e.Context, e.Subscribed, e.MessageToken, e.Timestamp.Time); msg != nil {
Expand Down Expand Up @@ -122,6 +134,7 @@ func (v *Viber) ServeHTTP(w http.ResponseWriter, r *http.Request) {
if v.Message != nil {
var u User
if err := json.Unmarshal(e.Sender, &u); err != nil {
Log.Println(err)
return
}

Expand All @@ -130,27 +143,31 @@ func (v *Viber) ServeHTTP(w http.ResponseWriter, r *http.Request) {
case "text":
var m TextMessage
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 "picture":
var m PictureMessage
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 "video":
var m VideoMessage
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 "url":
var m URLMessage
if err := json.Unmarshal(e.Message, &m); err != nil {
Log.Println(err)
return
}
go v.Message(v, u, &m, e.MessageToken, e.Timestamp.Time)
Expand Down
17 changes: 7 additions & 10 deletions webhook.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
package viber

import (
"encoding/json"
"fmt"
)
import "encoding/json"

//
//https://chatapi.viber.com/pa/set_webhook
Expand Down Expand Up @@ -42,19 +39,19 @@ type WebhookVerify struct {
// if eventTypes is nil, all callbacks will be set to webhook
// if eventTypes is empty []string mandatory callbacks will be set
// Mandatory callbacks: "message", "subscribed", "unsubscribed"
// All possible callbacks: "delivered", "seen", "failed", "subscribed", "unsubscribed", "conversation_started"
// All possible callbacks: "message", "subscribed", "unsubscribed", "delivered", "seen", "failed", "conversation_started"
func (v *Viber) SetWebhook(url string, eventTypes []string) (WebhookResp, error) {
var resp WebhookResp

req := WebhookReq{
URL: url,
EventTypes: eventTypes,
}

r, err := v.PostData("https://chatapi.viber.com/pa/set_webhook", req)
if err != nil {
return resp, err
}

fmt.Println(string(r))
var resp WebhookResp
json.Unmarshal(r, &resp)

err = json.Unmarshal(r, &resp)
return resp, err
}

0 comments on commit 599cbb7

Please sign in to comment.