From 9bb67e86806b38a5ecf98f9844048c675ef14d40 Mon Sep 17 00:00:00 2001 From: Horus3 Date: Mon, 30 Mar 2015 18:40:44 +0200 Subject: Logs request body when parsing to JSON failed. --- handler.go | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/handler.go b/handler.go index 076c806..f9d4a1e 100644 --- a/handler.go +++ b/handler.go @@ -2,6 +2,7 @@ package main import ( "encoding/json" + "io/ioutil" "log" "net/http" "os" @@ -21,12 +22,23 @@ func WebhookFailureHandler(w http.ResponseWriter, r *http.Request) { func WebhookHandler(w http.ResponseWriter, r *http.Request) { decoder := json.NewDecoder(r.Body) + var hook Webhook + defer r.Body.Close() + err := decoder.Decode(&hook) if err != nil { - log.Print("Wrong JSON.", err) + + content, err := ioutil.ReadAll(r.Body) + if err != nil { + log.Println("Can't read r.Body.", err) + } + body := string(content) + + log.Print("Wrong JSON.", err, "Original message: "+body) + w.WriteHeader(400) - w.Write([]byte("Wrong JSON.")) + w.Write([]byte("Wrong JSON. " + err.Error() + " Original message: " + body)) return } if hook.Join != "" { -- cgit v1.2.3