feat(adapter): publish message if new device was registered

This commit is contained in:
leandrofars 2024-07-04 16:56:29 -03:00
parent 266857187e
commit 58417cddca
2 changed files with 10 additions and 0 deletions

View File

@ -1,6 +1,7 @@
package cwmp_handler package cwmp_handler
import ( import (
"encoding/json"
"encoding/xml" "encoding/xml"
"log" "log"
@ -12,6 +13,10 @@ func (h *Handler) HandleDeviceInfo(device string, data []byte, ack func()) {
defer ack() defer ack()
log.Printf("Device %s info", device) log.Printf("Device %s info", device)
deviceInfo := parseDeviceInfoMsg(data) deviceInfo := parseDeviceInfoMsg(data)
if deviceExists, _ := h.db.DeviceExists(deviceInfo.SN); !deviceExists {
fmtDeviceInfo, _ := json.Marshal(deviceInfo)
h.nc.Publish("device.v1.new", fmtDeviceInfo)
}
err := h.db.CreateDevice(deviceInfo) err := h.db.CreateDevice(deviceInfo)
if err != nil { if err != nil {
log.Printf("Failed to create device: %v", err) log.Printf("Failed to create device: %v", err)

View File

@ -1,6 +1,7 @@
package usp_handler package usp_handler
import ( import (
"encoding/json"
"log" "log"
"github.com/OktopUSP/oktopus/backend/services/mtp/adapter/internal/db" "github.com/OktopUSP/oktopus/backend/services/mtp/adapter/internal/db"
@ -14,6 +15,10 @@ func (h *Handler) HandleDeviceInfo(device, subject string, data []byte, mtp stri
defer ack() defer ack()
log.Printf("Device %s info, mtp: %s", device, mtp) log.Printf("Device %s info, mtp: %s", device, mtp)
deviceInfo := parseDeviceInfoMsg(device, subject, data, getMtp(mtp)) deviceInfo := parseDeviceInfoMsg(device, subject, data, getMtp(mtp))
if deviceExists, _ := h.db.DeviceExists(deviceInfo.SN); !deviceExists {
fmtDeviceInfo, _ := json.Marshal(deviceInfo)
h.nc.Publish("device.v1.new", fmtDeviceInfo)
}
err := h.db.CreateDevice(deviceInfo) err := h.db.CreateDevice(deviceInfo)
if err != nil { if err != nil {
log.Printf("Failed to create device: %v", err) log.Printf("Failed to create device: %v", err)