65 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.5 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
 | |
| 		abortWithError(w, "session not found")
 | |
| 		return
 | |
| 	}
 | |
| 	// get room by room-id
 | |
| 	room, err := getRoomByID(session.CurrentRoom)
 | |
| 	if err != nil {
 | |
| 		log.Error("failed to get room", "error", err, "session", session)
 | |
| 		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)
 | |
| }
 | 
