ailistener-old

The central Server which transports webhook events from the Dialogflow bot to the local nodes
git clone git://archive.git.mtrnord.blog/OpenHomeAuto/ailistener-old.git
Log | Files | Refs | README | LICENSE

commit ec69e971328e55c18d25f00d87ac069197b2ba77
parent b7ad20a903f8ed70063d345f06c92a4825c3f065
Author: MTRNord <mtrnord1@gmail.com>
Date:   Sat,  2 Jun 2018 13:09:51 +0200

Make a action switch

Diffstat:
MwsListener/server.go | 43+++++++++++++++++++++++++++++--------------
1 file changed, 29 insertions(+), 14 deletions(-)

diff --git a/wsListener/server.go b/wsListener/server.go @@ -22,14 +22,6 @@ func HomeHandler(w http.ResponseWriter, r *http.Request) { } func DFHandler(w http.ResponseWriter, r *http.Request) { - type params struct { - Artist string `json:"music-artist"` - Room string `json:"room"` - Genre string `json:"MusikGenre"` - } - - var p params - var dfr *df.Request if r.Body == nil { @@ -45,11 +37,35 @@ func DFHandler(w http.ResponseWriter, r *http.Request) { return } + switch dfr.QueryResult.Action { + case "play_music": + dff := playMusicDispatch(dfr, w) + if dff == nil { + return + } + + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + json.NewEncoder(w).Encode(dff) + + } + +} + +func playMusicDispatch(dfr *df.Request, w http.ResponseWriter) *df.Fulfillment { + type params struct { + Artist string `json:"music-artist"` + Room string `json:"room"` + Genre string `json:"MusikGenre"` + } + + var p params + // Retrieve the params of the request if err := dfr.GetParams(&p); err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) log.Println("[WSERROR] failed to get parmas: " + err.Error()) - return + return nil } log.Printf("REQUEST: %+v", dfr.QueryResult) log.Printf("SESSION: %s", dfr.Session) @@ -59,11 +75,10 @@ func DFHandler(w http.ResponseWriter, r *http.Request) { // Send back a fulfillment dff := &df.Fulfillment{ FulfillmentMessages: df.Messages{ - df.ForGoogle(df.SingleSimpleResponse("hello", "hello")), - {RichMessage: df.Text{Text: []string{"hello"}}}, + df.ForGoogle(df.SingleSimpleResponse("Musik wird gestartet!", "Musik wird gestartet!")), + {RichMessage: df.Text{Text: []string{"Musik wird gestartet!"}}}, }, } - w.Header().Set("Content-Type", "application/json") - w.WriteHeader(http.StatusOK) - json.NewEncoder(w).Encode(dff) + + return dff }