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
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

View File

@@ -21,10 +21,11 @@ type MQTTTarget struct {
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")
}
@@ -44,6 +45,7 @@ func NewMQTTTarget(cfg config.MQTTConfig, waManager WhatsAppManager) (*MQTTTarge
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
}

View File

@@ -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) {