Fix: sse changes
This commit is contained in:
		| @@ -78,6 +78,7 @@ func HandleFrontLogin(w http.ResponseWriter, r *http.Request) { | ||||
| 	fi := &models.FullInfo{ | ||||
| 		State: userstate, | ||||
| 	} | ||||
| 	fi.List = listPublicRooms() | ||||
| 	// save state to cache | ||||
| 	if err := saveState(cleanName, userstate); err != nil { | ||||
| 		// if err := saveFullInfo(fi); err != nil { | ||||
|   | ||||
| @@ -1,18 +1,22 @@ | ||||
| package handlers | ||||
|  | ||||
| import ( | ||||
| 	"fmt" | ||||
| 	"golias/broker" | ||||
| 	"golias/config" | ||||
| 	"golias/pkg/cache" | ||||
| 	"html/template" | ||||
| 	"log/slog" | ||||
| 	"net/http" | ||||
| 	"os" | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| var ( | ||||
| 	log      *slog.Logger | ||||
| 	cfg      *config.Config | ||||
| 	memcache cache.Cache | ||||
| 	Notifier *broker.Broker | ||||
| ) | ||||
|  | ||||
| func init() { | ||||
| @@ -22,6 +26,20 @@ func init() { | ||||
| 	})) | ||||
| 	memcache = cache.MemCache | ||||
| 	cfg = config.LoadConfigOrDefault("") | ||||
| 	Notifier = broker.NewBroker() | ||||
| 	go Notifier.Listen() | ||||
| 	ticker := time.NewTicker(2 * time.Second) | ||||
| 	go func() { | ||||
| 		counter := 0 | ||||
| 		for { | ||||
| 			<-ticker.C | ||||
| 			Notifier.Notifier <- broker.NotificationEvent{ | ||||
| 				EventName: "test", | ||||
| 				Payload:   fmt.Sprintf("%v test call of notifier", counter), | ||||
| 			} | ||||
| 			counter++ | ||||
| 		} | ||||
| 	}() | ||||
| } | ||||
|  | ||||
| var roundWords = map[string]string{ | ||||
| @@ -69,10 +87,8 @@ func HandleHome(w http.ResponseWriter, r *http.Request) { | ||||
| 		} | ||||
| 	} | ||||
| 	if fi != nil && fi.Room == nil { | ||||
| 		log.Debug("loading list") | ||||
| 		fi.List = listPublicRooms() | ||||
| 	} | ||||
| 	log.Debug("data debug", "fi", fi) | ||||
| 	if err := tmpl.ExecuteTemplate(w, "base", fi); err != nil { | ||||
| 		log.Error("failed to exec templ;", "error", err, "templ", "base") | ||||
| 	} | ||||
|   | ||||
| @@ -11,29 +11,16 @@ import ( | ||||
| 	"time" | ||||
| ) | ||||
|  | ||||
| // responseWriterWrapper wraps http.ResponseWriter to capture status code | ||||
| type responseWriterWrapper struct { | ||||
| 	http.ResponseWriter | ||||
| 	status int | ||||
| } | ||||
|  | ||||
| func (w *responseWriterWrapper) WriteHeader(status int) { | ||||
| 	w.status = status | ||||
| 	w.ResponseWriter.WriteHeader(status) | ||||
| } | ||||
|  | ||||
| // LogRequests logs all HTTP requests with method, path and duration | ||||
| func LogRequests(next http.Handler) http.Handler { | ||||
| 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { | ||||
| 		start := time.Now() | ||||
| 		// Wrap response writer to capture status code | ||||
| 		ww := &responseWriterWrapper{ResponseWriter: w} | ||||
| 		next.ServeHTTP(ww, r) | ||||
| 		next.ServeHTTP(w, r) | ||||
| 		duration := time.Since(start) | ||||
| 		log.Debug("request completed", | ||||
| 			"method", r.Method, | ||||
| 			"path", r.URL.RequestURI(), | ||||
| 			"status", ww.status, | ||||
| 			"duration", duration.String(), | ||||
| 		) | ||||
| 	}) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder