package app import ( "net/http" eventstreampkg "selective-vpn-api/app/eventstream" "time" ) func parseSinceID(r *http.Request) int64 { return eventstreampkg.ParseSinceID(r) } func handleEventsStream(w http.ResponseWriter, r *http.Request) { heartbeat := time.Duration(envInt("SVPN_EVENTS_HEARTBEAT_SEC", defaultHeartbeatSeconds)) * time.Second eventstreampkg.Serve( w, r, 500*time.Millisecond, heartbeat, func(since int64) []eventstreampkg.Event { raw := events.since(since) if len(raw) == 0 { return nil } out := make([]eventstreampkg.Event, 0, len(raw)) for _, ev := range raw { out = append(out, eventstreampkg.Event{ID: ev.ID, Kind: ev.Kind, Data: ev}) } return out }, ) }