package user import ( "context" "errors" "net/http" "git.samuelpua.com/telboon/ktm-train-bot/backend/internal/common" "github.com/go-chi/render" ) func (env *Env) CheckUserMiddleware(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { cookie, err := r.Cookie(env.CookieString) if err != nil { err = errors.New("user not logged in") render.Render(w, r, common.ErrInternalError(err)) return } user, err := env.getUserFromSessionToken(cookie.Value) if err != nil { render.Render(w, r, common.ErrInternalError(err)) return } ctx := context.WithValue(r.Context(), UserContextKey, user) next.ServeHTTP(w, r.WithContext(ctx)) }) }