diff --git a/handlers/game.go b/handlers/game.go index a34e657..042d7cd 100644 --- a/handlers/game.go +++ b/handlers/game.go @@ -253,13 +253,16 @@ func HandleStartGame(w http.ResponseWriter, r *http.Request) { func HandleJoinRoom(w http.ResponseWriter, r *http.Request) { roomID := r.URL.Query().Get("id") + log.Debug("got join-room request", "id", roomID) room, err := repo.RoomGetExtended(r.Context(), roomID) if err != nil { + log.Error("failed to fetch room", "error", err, "room_id", roomID) abortWithError(w, err.Error()) return } tmpl, err := template.ParseGlob("components/*.html") if err != nil { + log.Error("failed to parse templates", "error", err, "room_id", roomID) abortWithError(w, err.Error()) return } @@ -271,6 +274,7 @@ func HandleJoinRoom(w http.ResponseWriter, r *http.Request) { if err := tmpl.ExecuteTemplate(w, "base", fi); err != nil { log.Error("failed to execute base template", "error", err) } + log.Error("failed to fetch fi", "error", err, "room_id", roomID) // abortWithError(w, err.Error()) return } @@ -283,7 +287,7 @@ func HandleJoinRoom(w http.ResponseWriter, r *http.Request) { abortWithError(w, err.Error()) return } - if err := tmpl.ExecuteTemplate(w, "room", fi); err != nil { + if err := tmpl.ExecuteTemplate(w, "base", fi); err != nil { log.Error("failed to execute room template", "error", err) } } diff --git a/handlers/handlers.go b/handlers/handlers.go index 1a56959..3990e2f 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -88,6 +88,11 @@ func HandleExit(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/", 302) return } + if fi.Room == nil { + log.Error("failed to fetch room") + http.Redirect(w, r, "/", 302) + return + } if fi.Room.IsRunning { abortWithError(w, "cannot leave when game is running") return