From d80a6433b99c85b87053675d5d986a8b51350b13 Mon Sep 17 00:00:00 2001 From: Hein Date: Tue, 30 Dec 2025 01:00:42 +0200 Subject: [PATCH] Fixed mqtt bug where phone number is not formatted --- pkg/eventlogger/eventlogger.go | 4 ++-- pkg/eventlogger/mqtt_target.go | 25 +++++++++++++++---------- pkg/whatshooked/whatshooked.go | 2 +- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/pkg/eventlogger/eventlogger.go b/pkg/eventlogger/eventlogger.go index 2855539..1e9c50f 100644 --- a/pkg/eventlogger/eventlogger.go +++ b/pkg/eventlogger/eventlogger.go @@ -35,7 +35,7 @@ type WhatsAppManager interface { } // NewLogger creates a new event logger -func NewLogger(cfg config.EventLoggerConfig, dbConfig config.DatabaseConfig, waManager WhatsAppManager) (*Logger, error) { +func NewLogger(cfg config.EventLoggerConfig, dbConfig config.DatabaseConfig, waManager WhatsAppManager, defaultCountryCode string) (*Logger, error) { logger := &Logger{ config: cfg, dbConfig: dbConfig, @@ -74,7 +74,7 @@ func NewLogger(cfg config.EventLoggerConfig, dbConfig config.DatabaseConfig, waM case "mqtt": logging.Info("Initializing MQTT event logger target", "broker", cfg.MQTT.Broker) - mqttTarget, err := NewMQTTTarget(cfg.MQTT, waManager) + mqttTarget, err := NewMQTTTarget(cfg.MQTT, waManager, defaultCountryCode) if err != nil { logging.Error("Failed to initialize MQTT target", "error", err) continue diff --git a/pkg/eventlogger/mqtt_target.go b/pkg/eventlogger/mqtt_target.go index 95b4c4b..48ae363 100644 --- a/pkg/eventlogger/mqtt_target.go +++ b/pkg/eventlogger/mqtt_target.go @@ -17,14 +17,15 @@ import ( // MQTTTarget represents an MQTT logging target type MQTTTarget struct { - client mqtt.Client - config config.MQTTConfig - waManager WhatsAppManager - eventFilter map[string]bool + client mqtt.Client + config config.MQTTConfig + waManager WhatsAppManager + eventFilter map[string]bool + defaultCountryCode string } // NewMQTTTarget creates a new MQTT target -func NewMQTTTarget(cfg config.MQTTConfig, waManager WhatsAppManager) (*MQTTTarget, error) { +func NewMQTTTarget(cfg config.MQTTConfig, waManager WhatsAppManager, defaultCountryCode string) (*MQTTTarget, error) { if cfg.Broker == "" { return nil, fmt.Errorf("MQTT broker is required") } @@ -41,9 +42,10 @@ func NewMQTTTarget(cfg config.MQTTConfig, waManager WhatsAppManager) (*MQTTTarge } target := &MQTTTarget{ - config: cfg, - waManager: waManager, - eventFilter: make(map[string]bool), + config: cfg, + waManager: waManager, + eventFilter: make(map[string]bool), + defaultCountryCode: defaultCountryCode, } // Build event filter map for fast lookup @@ -183,10 +185,13 @@ func (m *MQTTTarget) handleSendMessage(client mqtt.Client, msg mqtt.Message) { sendReq.Type = "text" } + // Format phone number to JID format + formattedJID := utils.FormatPhoneToJID(sendReq.To, m.defaultCountryCode) + // Parse JID - jid, err := types.ParseJID(sendReq.To) + jid, err := types.ParseJID(formattedJID) if err != nil { - logging.Error("Failed to parse JID", "to", sendReq.To, "error", err) + logging.Error("Failed to parse JID", "to", sendReq.To, "formatted", formattedJID, "error", err) return } diff --git a/pkg/whatshooked/whatshooked.go b/pkg/whatshooked/whatshooked.go index 1eaed6b..1ec72ac 100644 --- a/pkg/whatshooked/whatshooked.go +++ b/pkg/whatshooked/whatshooked.go @@ -91,7 +91,7 @@ func newWithConfig(cfg *config.Config, configPath string) (*WhatsHooked, error) // Initialize event logger if enabled if cfg.EventLogger.Enabled && len(cfg.EventLogger.Targets) > 0 { - logger, err := eventlogger.NewLogger(cfg.EventLogger, cfg.Database, wh.whatsappMgr) + logger, err := eventlogger.NewLogger(cfg.EventLogger, cfg.Database, wh.whatsappMgr, cfg.Server.DefaultCountryCode) if err == nil { wh.eventLogger = logger wh.eventBus.SubscribeAll(func(event events.Event) {