diff options
| -rw-r--r-- | internal/server/server.go | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/internal/server/server.go b/internal/server/server.go index b835955..ace36f1 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -78,7 +78,8 @@ func New(cfg *config.Config, store *storage.Storage, sched *monitor.Scheduler, l mux.HandleFunc("GET /api/health", s.handleAPIHealth) // Badge endpoint - always public (for embedding in READMEs, docs) - mux.HandleFunc("GET /api/badge/{name}.svg", s.handleAPIBadge) + // Note: {name...} captures the rest of the path including .svg extension + mux.HandleFunc("GET /api/badge/{name...}", s.handleAPIBadge) // Full page data endpoint - public if refresh_mode=api, otherwise follows api.access if cfg.Display.RefreshMode == "api" { @@ -659,6 +660,9 @@ func (s *Server) handleAPIBadge(w http.ResponseWriter, r *http.Request) { return } + // Strip .svg extension if present + name = strings.TrimSuffix(name, ".svg") + // Get monitor stats stats, err := s.storage.GetMonitorStats(r.Context(), name) if err != nil { |