commit 7598de09e9da19684b5075c79ca50787c217288b
parent d004cf74a84d663a1563ccbed76f55539b42da20
Author: MTRNord <mtrnord1@gmail.com>
Date: Sun, 3 Jun 2018 11:17:51 +0200
Add more time tests
Diffstat:
1 file changed, 16 insertions(+), 4 deletions(-)
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"
"time"
@@ -26,7 +27,7 @@ func HomeHandler(w http.ResponseWriter, r *http.Request) {
func DFHandler(w http.ResponseWriter, r *http.Request) {
start := time.Now()
- var dfr *df.Request
+ dfr := &df.Request{}
if r.Body == nil {
http.Error(w, "Please send a request body", http.StatusNotAcceptable)
@@ -34,10 +35,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
}
@@ -75,12 +82,15 @@ func DFHandler(w http.ResponseWriter, r *http.Request) {
default:
w.WriteHeader(http.StatusNotImplemented)
log.Println("[WSINFO] default resp")
+ elapsed := time.Since(start)
+ log.Printf("Took %s", elapsed)
return
}
}
func playMusicDispatch(dfr *df.Request, w http.ResponseWriter) *df.Fulfillment {
+ start := time.Now()
type MusicParams struct {
Artist string `json:"music-artist"`
Room string `json:"room"`
@@ -160,6 +170,8 @@ func playMusicDispatch(dfr *df.Request, w http.ResponseWriter) *df.Fulfillment {
},
}
}
+ elapsed := time.Since(start)
+ log.Printf("playMusicDispatch Took %s", elapsed)
return resp
}