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)
 | 
						|
}
 |