Add User reset password

This commit is contained in:
aditya.siregar
2024-08-30 02:23:01 +07:00
parent 0839c04257
commit 80ee503798
4 changed files with 161 additions and 12 deletions
+13 -5
View File
@@ -2,6 +2,7 @@ package auth
import (
"context"
"fmt"
"furtuna-be/config"
"furtuna-be/internal/common/mycontext"
"furtuna-be/internal/entity"
@@ -117,25 +118,32 @@ func (u *AuthServiceImpl) SendPasswordResetLink(ctx context.Context, email strin
return errors.ErrorInternalServer
}
// Update the user's password in the database
if err := u.authRepo.UpdatePassword(ctx, trx, hashPassword, user.ID, true); err != nil {
logger.ContextLogger(ctx).Error("error when updating user password", zap.Error(err))
u.trxRepo.Rollback(trx)
return errors.ErrorInternalServer
}
// If a custom receiver is specified, override the email
if u.emailCfg.CustomReceiver != "" {
email = u.emailCfg.CustomReceiver
}
sender := u.emailCfg.Sender
templatePath := u.emailCfg.ResetPassword.TemplatePath
subject := fmt.Sprintf("Furtuna %s", u.emailCfg.ResetPassword.Subject)
if user.UserType == "CUSTOMER" {
sender = u.emailCfg.SenderCustomer
templatePath = u.emailCfg.ResetPassword.TemplatePathCustomer
subject = fmt.Sprintf("Ayogo %s", u.emailCfg.ResetPassword.Subject)
}
// Prepare the email notification parameters
renewPasswordRequest := entity.SendEmailNotificationParam{
Sender: u.emailCfg.Sender,
Sender: sender,
Recipient: email,
Subject: u.emailCfg.ResetPassword.Subject,
Subject: subject,
TemplateName: u.emailCfg.ResetPassword.TemplateName,
TemplatePath: u.emailCfg.ResetPassword.TemplatePath,
TemplatePath: templatePath,
Data: map[string]interface{}{
"Name": user.Name,
"OpeningWord": u.emailCfg.ResetPassword.OpeningWord,