feat(webhook): persist incoming provider messages
This commit is contained in:
@@ -36,6 +36,7 @@ type TelegramWebhookHandler struct {
|
||||
provider *channelprovider.TelegramProvider
|
||||
telWebhook *telegramchannel.WebhookHandler
|
||||
db *gorm.DB
|
||||
persister *IncomingPersister
|
||||
}
|
||||
|
||||
// NewTelegramWebhookHandler creates a Telegram webhook handler for Gin integration.
|
||||
@@ -48,6 +49,7 @@ func NewTelegramWebhookHandler(
|
||||
provider: provider,
|
||||
telWebhook: telWebhook,
|
||||
db: db,
|
||||
persister: NewIncomingPersister(db),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,9 +117,12 @@ func (h *TelegramWebhookHandler) HandleTelegramWebhook(c *gin.Context) {
|
||||
if err != nil {
|
||||
applogger.L().Errorf("Telegram webhook: message processing failed (update_id=%d): %v", update.UpdateID, err)
|
||||
} else if incomingMsg != nil {
|
||||
applogger.L().Infof("Telegram webhook: message processed (inbox_id=%d, source_id=%s)",
|
||||
incomingMsg.InboxID, incomingMsg.SourceID)
|
||||
// TODO: Push to message broker/dispatcher for persistence + notification
|
||||
if _, persistErr := h.persister.PersistIncoming(c.Request.Context(), inbox, incomingMsg); persistErr != nil {
|
||||
applogger.L().Errorf("Telegram webhook: persist message failed (update_id=%d source_id=%s): %v", update.UpdateID, incomingMsg.SourceID, persistErr)
|
||||
} else {
|
||||
applogger.L().Infof("Telegram webhook: message persisted (inbox_id=%d, source_id=%s)",
|
||||
incomingMsg.InboxID, incomingMsg.SourceID)
|
||||
}
|
||||
}
|
||||
|
||||
// Always return 200 OK to Telegram — it retries if not 200
|
||||
|
||||
Reference in New Issue
Block a user