commit a0d02f05017e0667a008d24c91ac10d1c634de42
parent 06ceca9ca57227f8fe4cfeda9935cd7ae3f30fc0
Author: MTRNord <mtrnord1@gmail.com>
Date: Sun, 3 Jun 2018 11:08:19 +0200
Use ffjson
Diffstat:
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/go.mod b/go.mod
@@ -1,8 +1,9 @@
module github.com/OpenHomeAuto/AiListener
require (
- github.com/OpenHomeAuto/dialogflow-go-webhook v1.0.0
+ github.com/OpenHomeAuto/dialogflow-go-webhook v0.0.0-20180603090732-edd56b21fa08
github.com/bjarneh/latinx v0.0.0-20120329061922-4dfe9ba2a293
github.com/gorilla/mux v1.6.2
github.com/leboncoin/dialogflow-go-webhook v1.0.0
+ github.com/pquerna/ffjson v0.0.0-20171002144729-d49c2bc1aa13
)
diff --git a/wsListener/server.go b/wsListener/server.go
@@ -6,6 +6,7 @@ import (
df "github.com/OpenHomeAuto/dialogflow-go-webhook"
"github.com/bjarneh/latinx"
"github.com/gorilla/mux"
+ "io/ioutil"
"log"
"net/http"
)
@@ -31,10 +32,16 @@ func DFHandler(w http.ResponseWriter, r *http.Request) {
return
}
defer r.Body.Close()
- decoder := json.NewDecoder(r.Body)
- if err := decoder.Decode(&dfr); err != nil {
+ body, err := ioutil.ReadAll(r.Body)
+ if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
- log.Println("[WSERROR] failed to decode: " + err.Error())
+ log.Println("[WSERROR] failed to convert to byte: " + err.Error())
+ return
+ }
+ err = dfr.UnmarshalJSON(body)
+ if err != nil {
+ http.Error(w, err.Error(), http.StatusInternalServerError)
+ log.Println("[WSERROR] failed to UnmarshalJSON: " + err.Error())
return
}