fix: SSE flusher support, null-safe API responses
- Add Flush() to statusRecorder so SSE works through logging middleware - Return empty array instead of null for empty project lists - Fixes 500 on /api/events and null.length crash on dashboard
This commit is contained in:
@@ -72,3 +72,10 @@ func (r *statusRecorder) WriteHeader(code int) {
|
|||||||
r.status = code
|
r.status = code
|
||||||
r.ResponseWriter.WriteHeader(code)
|
r.ResponseWriter.WriteHeader(code)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Flush delegates to the underlying ResponseWriter if it supports http.Flusher (needed for SSE).
|
||||||
|
func (r *statusRecorder) Flush() {
|
||||||
|
if f, ok := r.ResponseWriter.(http.Flusher); ok {
|
||||||
|
f.Flush()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ func (s *Server) listProjects(w http.ResponseWriter, r *http.Request) {
|
|||||||
respondError(w, http.StatusInternalServerError, "failed to list projects: "+err.Error())
|
respondError(w, http.StatusInternalServerError, "failed to list projects: "+err.Error())
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if projects == nil {
|
||||||
|
projects = []store.Project{}
|
||||||
|
}
|
||||||
respondJSON(w, http.StatusOK, projects)
|
respondJSON(w, http.StatusOK, projects)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user