From 3adc1e1a43e9191b8add7ca3161dc219c76b42f5 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Fri, 17 Jul 2026 18:09:46 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20register=20alarm=20API=20routes=20a?= =?UTF-8?q?t=20/api/=20level=20instead=20of=20/ui/api/=20=E2=80=94=20consi?= =?UTF-8?q?stent=20REST=20design?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/safesightd/main.go | 1 + internal/web/ui.go | 9 ++++++--- internal/web/ui/templates/dashboard.html | 4 ++-- internal/web/ui/templates/layout.html | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cmd/safesightd/main.go b/cmd/safesightd/main.go index 9fad73e..a30eda5 100644 --- a/cmd/safesightd/main.go +++ b/cmd/safesightd/main.go @@ -116,6 +116,7 @@ func main() { log.Fatalf("failed to init ui routes: %v", err) } r.Mount("/ui", http.StripPrefix("/ui", uiRouter)) + ui.RegisterAlarmRoutes(r) // API Routes r.Route("/api", func(r chi.Router) { diff --git a/internal/web/ui.go b/internal/web/ui.go index b783597..2c7899d 100644 --- a/internal/web/ui.go +++ b/internal/web/ui.go @@ -678,6 +678,12 @@ func tablerIconSVG(name string) string { return "" } +func (u *UI) RegisterAlarmRoutes(r chi.Router) { + r.Get("/api/alarms/stream", u.apiAlarmStream) + r.Get("/api/alarms/unacknowledged-count", u.apiAlarmUnacknowledgedCount) + r.Get("/api/alarms/daily-count", u.apiAlarmDailyCount) +} + func (u *UI) Routes() (chi.Router, error) { r := chi.NewRouter() @@ -801,9 +807,6 @@ func (u *UI) Routes() (chi.Router, error) { r.Post("/alarms/{id}/acknowledge", u.actionAcknowledgeAlarm) r.Post("/alarms/{id}/resolve", u.actionResolveAlarm) r.Post("/alarms/{id}/severity", u.actionUpdateAlarmSeverity) - r.Get("/api/alarms/stream", u.apiAlarmStream) - r.Get("/api/alarms/unacknowledged-count", u.apiAlarmUnacknowledgedCount) - r.Get("/api/alarms/daily-count", u.apiAlarmDailyCount) r.Get("/face-gallery", u.pageFaceGallery) r.Get("/face-photo/*", u.serveFacePhoto) r.Post("/face-gallery/import", u.actionFaceGalleryImport) diff --git a/internal/web/ui/templates/dashboard.html b/internal/web/ui/templates/dashboard.html index 07dd4c2..279adc6 100644 --- a/internal/web/ui/templates/dashboard.html +++ b/internal/web/ui/templates/dashboard.html @@ -142,7 +142,7 @@ } try { - var es = new EventSource("/ui/api/alarms/stream"); + var es = new EventSource("/api/alarms/stream"); es.onmessage = function(e) { try { var alarm = JSON.parse(e.data); @@ -165,7 +165,7 @@ var ctx = canvas.getContext("2d"); var dpr = window.devicePixelRatio || 1; - fetch("/ui/api/alarms/daily-count?days=7", {credentials:"same-origin"}) + fetch("/api/alarms/daily-count?days=7", {credentials:"same-origin"}) .then(function(r){return r.json()}) .then(function(data){ if (!data || data.length === 0) return; diff --git a/internal/web/ui/templates/layout.html b/internal/web/ui/templates/layout.html index 411fa40..8a9c9a1 100644 --- a/internal/web/ui/templates/layout.html +++ b/internal/web/ui/templates/layout.html @@ -382,7 +382,7 @@ } function pollAlarmCount() { - fetch("/ui/api/alarms/unacknowledged-count", {credentials:"same-origin"}) + fetch("/api/alarms/unacknowledged-count", {credentials:"same-origin"}) .then(function(r){return r.json()}) .then(function(data){updateAlarmBadge(data.count||0)}) .catch(function(){});