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)
|
||||
// return
|
||||
// }
|
||||
// userState := models.MakeTestState()
|
||||
userState, _ := getStateByCtx(r.Context())
|
||||
if userState == nil {
|
||||
userState = &models.UserState{}
|
||||
}
|
||||
// if err != nil {
|
||||
// abortWithError(w, err.Error())
|
||||
// return
|
||||
// }
|
||||
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