package handlers import ( "errors" "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() tmpl, err := template.ParseGlob("components/*.html") if err != nil { abortWithError(w, err.Error()) return } fi, err := getFullInfoByCtx(ctx) if err != nil { abortWithError(w, err.Error()) return } if fi.State.Role != "guesser" { err = errors.New("need to guesser to open the card") abortWithError(w, err.Error()) return } // whos move it is? if fi.State.Team != models.UserTeam(fi.Room.TeamTurn) { err = errors.New("not your team's move") abortWithError(w, err.Error()) return } log.Debug("got state", "state", fi) // TODO: 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 } cardword := models.WordCard{ Word: word, Color: models.StrToWordColor(color), Revealed: true, } fi.Room.RevealSpecificWord(word) if err := saveFullInfo(fi); err != nil { abortWithError(w, err.Error()) return } notify(models.NotifyRoomUpdatePrefix+fi.Room.ID, "") tmpl.ExecuteTemplate(w, "cardword", cardword) }