package handlers import ( "golias/models" "html/template" "net/http" ) func HandleShowCreateForm(w http.ResponseWriter, r *http.Request) { show := true tmpl, err := template.ParseGlob("components/*.html") if err != nil { abortWithError(w, err.Error()) return } tmpl.ExecuteTemplate(w, "createform", show) } func HandleHideCreateForm(w http.ResponseWriter, r *http.Request) { show := false tmpl, err := template.ParseGlob("components/*.html") if err != nil { abortWithError(w, err.Error()) return } tmpl.ExecuteTemplate(w, "createform", show) } func HandleShowColor(w http.ResponseWriter, r *http.Request) { word := r.URL.Query().Get("word") ctx := r.Context() session, ok := ctx.Value(models.CtxSessionKey).(models.Session) if !ok { // trying to get color without a session -> error } // get room by room-id room, err := getRoomByID(session.CurrentRoom) if err != nil { log.Error("failed to get room", "error", err) abortWithError(w, "failed to get room") return } log.Debug("got room", "room", room) // update room score color, exists := roundWords[word] log.Debug("got show-color request", "word", word, "color", color) if !exists { abortWithError(w, "word is not found") return } tmpl, err := template.ParseGlob("components/*.html") if err != nil { abortWithError(w, err.Error()) return } cardword := models.WordCard{ Word: word, Color: models.StrToWordColor(color), Revealed: true, } tmpl.ExecuteTemplate(w, "cardword", cardword) }