61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
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
|
|
}
|
|
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)
|
|
}
|