Fix: pass username in ctx; more test words
This commit is contained in:
		| @@ -29,20 +29,17 @@ func HandleHideCreateForm(w http.ResponseWriter, r *http.Request) { | ||||
| 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 | ||||
| 	} | ||||
| 	session, ok := ctx.Value(models.CtxSessionKey).(*models.Session) | ||||
| 	if !ok { | ||||
| 		// trying to get color without a session -> error | ||||
| 		abortWithError(w, "session not found") | ||||
| 		http.Redirect(w, r, "/", 302) | ||||
| 		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) | ||||
| 	state, err := loadState(session.Username) | ||||
| 	if err != nil { | ||||
| 		abortWithError(w, err.Error()) | ||||
| @@ -56,11 +53,6 @@ func HandleShowColor(w http.ResponseWriter, r *http.Request) { | ||||
| 		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), | ||||
|   | ||||
| @@ -2,6 +2,7 @@ package handlers | ||||
|  | ||||
| import ( | ||||
| 	"golias/config" | ||||
| 	"golias/models" | ||||
| 	"golias/pkg/cache" | ||||
| 	"html/template" | ||||
| 	"log/slog" | ||||
| @@ -35,6 +36,21 @@ var roundWords = map[string]string{ | ||||
| 	"rat":        "white", | ||||
| 	"perplexity": "blue", | ||||
| 	"notion":     "red", | ||||
| 	"guitar":     "blue", | ||||
| 	"ocean":      "blue", | ||||
| 	"moon":       "blue", | ||||
| 	"coffee":     "blue", | ||||
| 	"mountain":   "blue", | ||||
| 	"book":       "blue", | ||||
| 	"camera":     "blue", | ||||
| 	"apple":      "red", | ||||
| 	"fire":       "red", | ||||
| 	"rose":       "red", | ||||
| 	"sun":        "red", | ||||
| 	"cherry":     "red", | ||||
| 	"heart":      "red", | ||||
| 	"tomato":     "red", | ||||
| 	"cloud":      "white", | ||||
| } | ||||
|  | ||||
| func HandlePing(w http.ResponseWriter, r *http.Request) { | ||||
| @@ -47,16 +63,13 @@ func HandleHome(w http.ResponseWriter, r *http.Request) { | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	// check if user in a room | ||||
| 	// roomID := getRoomIDFromCtx(r.Context()) | ||||
| 	// roomID = "test-id" | ||||
| 	// if roomID != "" { | ||||
| 	// 	// get room data | ||||
| 	// 	userState := models.MakeTestState() | ||||
| 	// 	tmpl.ExecuteTemplate(w, "room", userState) | ||||
| 	userState, _ := getStateByCtx(r.Context()) | ||||
| 	if userState == nil { | ||||
| 		userState = &models.UserState{} | ||||
| 	} | ||||
| 	// if err != nil { | ||||
| 	// abortWithError(w, err.Error()) | ||||
| 	// return | ||||
| 	// } | ||||
| 	// userState := models.MakeTestState() | ||||
| 	userState, _ := getStateByCtx(r.Context()) | ||||
| 	tmpl.ExecuteTemplate(w, "base", userState) | ||||
| } | ||||
|   | ||||
| @@ -94,7 +94,7 @@ func GetSession(next http.Handler) http.Handler { | ||||
| 		} | ||||
| 		ctx := context.WithValue(r.Context(), | ||||
| 			models.CtxUsernameKey, userSession.Username) | ||||
| 		ctx = context.WithValue(r.Context(), | ||||
| 		ctx = context.WithValue(ctx, | ||||
| 			models.CtxSessionKey, userSession) | ||||
| 		if err := cacheSetSession(sessionToken, | ||||
| 			userSession); err != nil { | ||||
|   | ||||
| @@ -59,6 +59,21 @@ func MakeTestState() *UserState { | ||||
| 		{Word: "rat", Color: "white"}, | ||||
| 		{Word: "perplexity", Color: "blue"}, | ||||
| 		{Word: "notion", Color: "red"}, | ||||
| 		{Word: "guitar", Color: "blue"}, | ||||
| 		{Word: "ocean", Color: "blue"}, | ||||
| 		{Word: "moon", Color: "blue"}, | ||||
| 		{Word: "coffee", Color: "blue"}, | ||||
| 		{Word: "mountain", Color: "blue"}, | ||||
| 		{Word: "book", Color: "blue"}, | ||||
| 		{Word: "camera", Color: "blue"}, | ||||
| 		{Word: "apple", Color: "red"}, | ||||
| 		{Word: "fire", Color: "red"}, | ||||
| 		{Word: "rose", Color: "red"}, | ||||
| 		{Word: "sun", Color: "red"}, | ||||
| 		{Word: "cherry", Color: "red"}, | ||||
| 		{Word: "heart", Color: "red"}, | ||||
| 		{Word: "tomato", Color: "red"}, | ||||
| 		{Word: "cloud", Color: "white"}, | ||||
| 	} | ||||
| 	room := Room{ | ||||
| 		ID:          "test-id", | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder