Fixed mqtt bug where phone number is not formatted
Some checks failed
CI / Test (1.23) (push) Failing after -22m52s
CI / Test (1.22) (push) Failing after -22m44s
CI / Build (push) Successful in -25m59s
CI / Lint (push) Successful in -25m47s

This commit is contained in:
2025-12-30 01:00:42 +02:00
parent 7b2390cbf6
commit d80a6433b9
3 changed files with 18 additions and 13 deletions

View File

@@ -35,7 +35,7 @@ type WhatsAppManager interface {
} }
// NewLogger creates a new event logger // 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{ logger := &Logger{
config: cfg, config: cfg,
dbConfig: dbConfig, dbConfig: dbConfig,
@@ -74,7 +74,7 @@ func NewLogger(cfg config.EventLoggerConfig, dbConfig config.DatabaseConfig, waM
case "mqtt": case "mqtt":
logging.Info("Initializing MQTT event logger target", "broker", cfg.MQTT.Broker) 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 { if err != nil {
logging.Error("Failed to initialize MQTT target", "error", err) logging.Error("Failed to initialize MQTT target", "error", err)
continue continue

View File

@@ -17,14 +17,15 @@ import (
// MQTTTarget represents an MQTT logging target // MQTTTarget represents an MQTT logging target
type MQTTTarget struct { type MQTTTarget struct {
client mqtt.Client client mqtt.Client
config config.MQTTConfig config config.MQTTConfig
waManager WhatsAppManager waManager WhatsAppManager
eventFilter map[string]bool eventFilter map[string]bool
defaultCountryCode string
} }
// NewMQTTTarget creates a new MQTT target // 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 == "" { if cfg.Broker == "" {
return nil, fmt.Errorf("MQTT broker is required") return nil, fmt.Errorf("MQTT broker is required")
} }
@@ -41,9 +42,10 @@ func NewMQTTTarget(cfg config.MQTTConfig, waManager WhatsAppManager) (*MQTTTarge
} }
target := &MQTTTarget{ target := &MQTTTarget{
config: cfg, config: cfg,
waManager: waManager, waManager: waManager,
eventFilter: make(map[string]bool), eventFilter: make(map[string]bool),
defaultCountryCode: defaultCountryCode,
} }
// Build event filter map for fast lookup // Build event filter map for fast lookup
@@ -183,10 +185,13 @@ func (m *MQTTTarget) handleSendMessage(client mqtt.Client, msg mqtt.Message) {
sendReq.Type = "text" sendReq.Type = "text"
} }
// Format phone number to JID format
formattedJID := utils.FormatPhoneToJID(sendReq.To, m.defaultCountryCode)
// Parse JID // Parse JID
jid, err := types.ParseJID(sendReq.To) jid, err := types.ParseJID(formattedJID)
if err != nil { 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 return
} }

View File

@@ -91,7 +91,7 @@ func newWithConfig(cfg *config.Config, configPath string) (*WhatsHooked, error)
// Initialize event logger if enabled // Initialize event logger if enabled
if cfg.EventLogger.Enabled && len(cfg.EventLogger.Targets) > 0 { 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 { if err == nil {
wh.eventLogger = logger wh.eventLogger = logger
wh.eventBus.SubscribeAll(func(event events.Event) { wh.eventBus.SubscribeAll(func(event events.Event) {