* (if they are present)
**/
func (dbw *DBWrapper) RoomsRemoveByNameAndId(w http.ResponseWriter, r *http.Request) {
- var assignedSongKeys []int
- err := json.NewDecoder(r.Body).Decode(&assignedSongKeys)
+ var songKeysString []string
+ err := json.NewDecoder(r.Body).Decode(&songKeysString)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
+ w.Write([]byte("Failed to get JSON from the body: " + err.Error()))
return
}
name := r.PathValue("name")
// TODO: again, is there some way roll this into one command?
- for _, k := range assignedSongKeys {
+ for _, k := range songKeysString {
_, err = dbw.RedisDb.ZRem(dbw.Ctx, name, k).Result()
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
+ w.Write([]byte("Error occured when calling ZRem on Database: " + err.Error()))
return
}
}
**/
let currentRoom = ""
+let inRoomList = document.getElementById("inRoomList")
+let outRoomList = document.getElementById("outRoomList")
+
+async function removeSongFromRoom(event) {
+ // first make the request
+ let changeId = event.target.id.replace("song:", "")
+
+ let response = await fetch("/api/rooms/remove/" + currentRoom, {
+ method: "PUT",
+ body: JSON.stringify([changeId])
+ })
-function removeSongFromRoom(event) {
+ if (response.status != 200) {
+ alert(await response.text())
+ return
+ }
+ // then we just manually move elements
+ outRoomList.appendChild(target)
+ inRoomList.removeChild(target)
}
-function addSongToRoom(event) {
+async function addSongToRoom(event) {
+ // first make the request
+ let changeId = event.target.id.replace("song:", "")
+ let response = await fetch("/api/rooms/add/" + currentRoom, {
+ method: "PUT",
+ body: JSON.stringify([changeId])
+ })
+
+ if (response.status != 200) {
+ alert(await response.text())
+ return
+ }
+
+ // then we just manually move elements
+ inRoomList.appendChild(target)
+ outRoomList.removeChild(target)
}
/**
}
}
-let inRoomList = document.getElementById("inRoomList")
-let outRoomList = document.getElementById("outRoomList")
roomSelect.addEventListener("change", async (event) => {
let room = event.target.value