31 lines
955 B
Go
31 lines
955 B
Go
package notificationimp
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/tech/sendico/pkg/model"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
func (a *NotificationAPI) onPasswordReset(context context.Context, account *model.Account, resetToken string) error {
|
|
var link string
|
|
var err error
|
|
if link, err = a.dp.GetFullLink("password", "reset", account.ID.Hex(), resetToken); err != nil {
|
|
a.logger.Warn("Failed to generate password reset link", zap.Error(err), zap.String("login", account.Login))
|
|
return err
|
|
}
|
|
mr := a.client.MailBuilder().
|
|
AddRecipient(account.Name, account.Login).
|
|
SetAccountID(account.ID.Hex()).
|
|
SetLocale(account.Locale).
|
|
AddButton(link).
|
|
AddData("URL", link).
|
|
SetTemplateID("reset-password")
|
|
if err := a.client.Send(mr); err != nil {
|
|
a.logger.Warn("Failed to send password reset email", zap.Error(err), zap.String("login", account.Login))
|
|
return err
|
|
}
|
|
a.logger.Info("Password reset email sent", zap.String("login", account.Login))
|
|
return nil
|
|
}
|