Fixed mqtt bug where phone number is not formatted
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user