From 58417cddca9d74f8adc956c3d5199c598c596176 Mon Sep 17 00:00:00 2001 From: leandrofars Date: Thu, 4 Jul 2024 16:56:29 -0300 Subject: [PATCH] feat(adapter): publish message if new device was registered --- .../mtp/adapter/internal/events/cwmp_handler/info.go | 5 +++++ .../services/mtp/adapter/internal/events/usp_handler/info.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/backend/services/mtp/adapter/internal/events/cwmp_handler/info.go b/backend/services/mtp/adapter/internal/events/cwmp_handler/info.go index d46a895..8ce31f1 100644 --- a/backend/services/mtp/adapter/internal/events/cwmp_handler/info.go +++ b/backend/services/mtp/adapter/internal/events/cwmp_handler/info.go @@ -1,6 +1,7 @@ package cwmp_handler import ( + "encoding/json" "encoding/xml" "log" @@ -12,6 +13,10 @@ func (h *Handler) HandleDeviceInfo(device string, data []byte, ack func()) { defer ack() log.Printf("Device %s info", device) 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) if err != nil { log.Printf("Failed to create device: %v", err) diff --git a/backend/services/mtp/adapter/internal/events/usp_handler/info.go b/backend/services/mtp/adapter/internal/events/usp_handler/info.go index 07acca7..ce2bd66 100644 --- a/backend/services/mtp/adapter/internal/events/usp_handler/info.go +++ b/backend/services/mtp/adapter/internal/events/usp_handler/info.go @@ -1,6 +1,7 @@ package usp_handler import ( + "encoding/json" "log" "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() log.Printf("Device %s info, mtp: %s", device, 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) if err != nil { log.Printf("Failed to create device: %v", err)