diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2022-07-21 21:14:14 +0200 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2022-07-21 21:14:14 +0200 |
| commit | 8b4335c18752ce96e452dc232e57695c2fdf6a6d (patch) | |
| tree | e191e079b607126a890a0bf1498a3f8167a8204e /main.go | |
| parent | a14ffdfc999abd76c2d9937e778c932a457be08f (diff) | |
| download | WRMS-8b4335c18752ce96e452dc232e57695c2fdf6a6d.tar.gz WRMS-8b4335c18752ce96e452dc232e57695c2fdf6a6d.zip | |
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
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 31 |
1 files changed, 25 insertions, 6 deletions
@@ -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() |
