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