From 67de79e230992bc46b070254ee551ab1ee7cf961 Mon Sep 17 00:00:00 2001 From: imbytecat Date: Mon, 26 Aug 2024 16:31:53 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=20zbx=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=B3=A8=E5=86=8C=E8=AE=BE=E5=A4=87=E8=83=BD?= =?UTF-8?q?=E5=8A=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- integration/zabbixagent/gin_handler.go | 32 ++++++++++++++++++++++++-- router/router.go | 1 + 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/integration/zabbixagent/gin_handler.go b/integration/zabbixagent/gin_handler.go index 62fceee..07bf509 100644 --- a/integration/zabbixagent/gin_handler.go +++ b/integration/zabbixagent/gin_handler.go @@ -3,7 +3,9 @@ package zabbixagent import ( "github.com/gin-gonic/gin" "net/http" - "onvif-agent/service/onvif" + "onvif-agent/response" + handler "onvif-agent/router/handler/onvif" + service "onvif-agent/service/onvif" ) func ONVIFDeviceDiscovery(c *gin.Context) { @@ -12,7 +14,7 @@ func ONVIFDeviceDiscovery(c *gin.Context) { } arr := make([]ZBXDevice, 0) - for xaddr := range onvif.Sessions { + for xaddr := range service.Sessions { arr = append(arr, ZBXDevice{ Xaddr: xaddr, }) @@ -22,3 +24,29 @@ func ONVIFDeviceDiscovery(c *gin.Context) { "data": arr, }) } + +func ONVIFDeviceRegister(c *gin.Context) { + var req []handler.CreateSessionRequest + if err := c.ShouldBindJSON(&req); err != nil { + response.NewResponse().Error(err).Send(c) + return + } + + for _, v := range req { + session, err := service.NewSession(v.Xaddr, v.Username, v.Password) + if err != nil { + response.NewResponse().Error(err).Send(c) + return + } + + _, err = session.GetDeviceInfo() + if err != nil { + response.NewResponse().Error(err).Send(c) + return + } + + service.Sessions[session.Device.GetDeviceParams().Xaddr] = session + } + + response.NewResponse().Success().Send(c) +} diff --git a/router/router.go b/router/router.go index 03fdd5f..9270536 100644 --- a/router/router.go +++ b/router/router.go @@ -35,5 +35,6 @@ func SetupRoutes(r *gin.Engine) { zabbixGroup := r.Group("/zabbix") { zabbixGroup.POST("/onvifDeviceDiscovery", zabbixagent.ONVIFDeviceDiscovery) + zabbixGroup.POST("/onvifDeviceRegister", zabbixagent.ONVIFDeviceRegister) } }