From 8b4335c18752ce96e452dc232e57695c2fdf6a6d Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Thu, 21 Jul 2022 21:14:14 +0200 Subject: intermediate commit * add dummy backend * enable spotify searching * JS: use let instead of var * improve logging * support adding new songs from search * rename Song.Id to Song.Uri --- main.go | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 9c89693..657b211 100644 --- a/main.go +++ b/main.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "html/template" + "io/ioutil" "log" "net/http" @@ -40,6 +41,8 @@ func searchHandler(w http.ResponseWriter, r *http.Request) { log.Fatal(err) return } + + log.Println("Search returned", string(data)) w.Write(data) } @@ -51,9 +54,9 @@ func genericVoteHandler(w http.ResponseWriter, r *http.Request, vote string) { } connId := uuidCookie.Value - songId := r.URL.Query().Get("song") - log.Println("%s song %s via url %s", vote, songId, r.URL) - wrms.AdjustSongWeight(connId, songId, vote) + songUri := r.URL.Query().Get("song") + log.Println("%s song %s via url %s", vote, songUri, r.URL) + wrms.AdjustSongWeight(connId, songUri, vote) } func upHandler(w http.ResponseWriter, r *http.Request) { @@ -69,7 +72,23 @@ func unvoteHandler(w http.ResponseWriter, r *http.Request) { } func addHandler(w http.ResponseWriter, r *http.Request) { - fmt.Fprintf(w, "Added") + data, err := ioutil.ReadAll(r.Body) + if err != nil { + log.Println("Failed to read request body", string(data)) + http.Error(w, "Failed to read request body", http.StatusInternalServerError) + return + } + + song, err := NewSongFromJson(data) + if err != nil { + http.Error(w, "Could not parse song", http.StatusBadRequest) + return + } + + log.Println(fmt.Sprintf("Added song %s", string(data))) + wrms.AddSong(song) + wrms.Broadcast(Event{"add", []Song{song}}) + fmt.Fprintf(w, "Added song %s", string(data)) } func playPauseHandler(w http.ResponseWriter, r *http.Request) { @@ -163,8 +182,8 @@ func setupRoutes() { func main() { setupRoutes() - wrms.AddSong(NewSong("Lala", "SNFMT", "local")) - wrms.AddSong(NewSong("Hobelbank", "MC Wankwichtel", "local")) + wrms.AddSong(NewDummySong("Lala", "SNFMT")) + wrms.AddSong(NewDummySong("Hobelbank", "MC Wankwichtel")) log.Println(wrms) defer wrms.Close() -- cgit v1.2.3