aboutsummaryrefslogtreecommitdiff
path: root/main.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2022-07-21 21:14:14 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2022-07-21 21:14:14 +0200
commit8b4335c18752ce96e452dc232e57695c2fdf6a6d (patch)
treee191e079b607126a890a0bf1498a3f8167a8204e /main.go
parenta14ffdfc999abd76c2d9937e778c932a457be08f (diff)
downloadWRMS-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.go31
1 files changed, 25 insertions, 6 deletions
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()