fix(soporte): un envío de correo sin base de datos tumbaba el proceso entero
soporteSendMail leía la configuración SMTP sin verificar que hubiera base. Con la conexión en nil eso es un desreferenciado de puntero, y como el envío corre en su propia goroutine no hay recover que lo contenga: se lleva puesto el proceso. En producción no se veía porque siempre hay base. Lo que sí bloqueaba era la suite de pkg/services, que no se podía correr entera desde hacía tiempo — cualquier test que tocara el auto-respuesta de soporte hacía explotar toda la corrida y tapaba el resultado del resto. Ahora devuelve un error en vez de reventar, y los 7 paquetes con tests del proyecto pasan en verde. (utils/xopen tiene 2 tests que fallan: es una dependencia de terceros incluida en el repo desde el commit inicial y no la toca nada de esto.) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
a8cc5c6289
commit
b97814d62d
@@ -15,6 +15,13 @@ import (
|
||||
// soporteSendMail envía un correo usando la configuración SMTP del webhook de soporte.
|
||||
// Si no hay SMTP configurado, usa app.Http.Mail como fallback.
|
||||
func soporteSendMail(to, subject, htmlBody string) error {
|
||||
// Sin base no hay configuración que leer: consultarla igual revienta con un
|
||||
// nil, y como el envío corre en su propia goroutine se lleva puesto todo el
|
||||
// proceso. Es lo que hacía que la suite de este paquete no se pudiera
|
||||
// correr entera.
|
||||
if app.Http.Database.DB == nil {
|
||||
return fmt.Errorf("no hay base de datos para leer la configuración de correo")
|
||||
}
|
||||
cfg, err := models.GetSoporteWebhookActivo()
|
||||
if err != nil || cfg == nil || cfg.SmtpHost == "" {
|
||||
return app.Http.Mail.Send(to, subject, htmlBody)
|
||||
|
||||
Reference in New Issue
Block a user