UPDATE: Fix bug
All checks were successful
Build and Release / release (push) Successful in 1m3s

This commit is contained in:
2026-04-12 07:48:57 +07:00
parent cd2ab23de7
commit 72efb480ac
3 changed files with 37 additions and 34 deletions

View File

@@ -23,6 +23,7 @@ type UserVerificationEntity struct {
type UserVerificationStorageEntity struct { type UserVerificationStorageEntity struct {
Email string `json:"email"` Email string `json:"email"`
Name string `json:"name"`
Status constants.StatusType `json:"status"` Status constants.StatusType `json:"status"`
ReviewNote string `json:"review_note"` ReviewNote string `json:"review_note"`
} }
@@ -76,4 +77,3 @@ func UserVerificationsEntitiesToResponse(entities []*UserVerificationEntity) []*
} }
return responses return responses
} }

View File

@@ -329,50 +329,53 @@ func (v *verificationService) UpdateStatusVerification(ctx context.Context, user
data := &models.UserVerificationStorageEntity{ data := &models.UserVerificationStorageEntity{
Email: userVerification.Email, Email: userVerification.Email,
Name: userVerification.Profile.DisplayName,
ReviewNote: dto.ReviewNote, ReviewNote: dto.ReviewNote,
Status: statusType, Status: statusType,
} }
roleIdList := make([]pgtype.UUID, 0) if statusType == constants.StatusApproved {
userVerification.Roles = append(userVerification.Roles, historianRole.ToRoleSimple()) roleIdList := make([]pgtype.UUID, 0)
userVerification.Roles = append(userVerification.Roles, historianRole.ToRoleSimple())
roleIdList = append(roleIdList, historianRoleID) roleIdList = append(roleIdList, historianRoleID)
for _, role := range userVerification.Roles { for _, role := range userVerification.Roles {
roleID, err := convert.StringToUUID(role.ID) roleID, err := convert.StringToUUID(role.ID)
if err != nil { if err != nil {
continue continue
}
roleIdList = append(roleIdList, roleID)
} }
roleIdList = append(roleIdList, roleID)
}
err = v.roleRepo.BulkDeleteRolesFromUser(ctx, userVerificationUUID) err = v.roleRepo.BulkDeleteRolesFromUser(ctx, userVerificationUUID)
if err != nil { if err != nil {
return nil, fiber.NewError(fiber.StatusInternalServerError, err.Error()) return nil, fiber.NewError(fiber.StatusInternalServerError, err.Error())
} }
err = v.roleRepo.CreateUserRole(ctx, sqlc.CreateUserRoleParams{ err = v.roleRepo.CreateUserRole(ctx, sqlc.CreateUserRoleParams{
UserID: userVerificationUUID, UserID: userVerificationUUID,
Column2: roleIdList, Column2: roleIdList,
}) })
if err != nil { if err != nil {
return nil, fiber.NewError(fiber.StatusInternalServerError, err.Error()) return nil, fiber.NewError(fiber.StatusInternalServerError, err.Error())
} }
err = v.userRepo.UpdateTokenVersion(ctx, sqlc.UpdateTokenVersionParams{ err = v.userRepo.UpdateTokenVersion(ctx, sqlc.UpdateTokenVersionParams{
ID: userVerificationUUID, ID: userVerificationUUID,
TokenVersion: userVerification.TokenVersion + 1, TokenVersion: userVerification.TokenVersion + 1,
}) })
if err != nil { if err != nil {
return nil, fiber.NewError(fiber.StatusInternalServerError, err.Error()) return nil, fiber.NewError(fiber.StatusInternalServerError, err.Error())
} }
userVerification.TokenVersion += 1 userVerification.TokenVersion += 1
mapCache := map[string]any{ mapCache := map[string]any{
fmt.Sprintf("user:email:%s", userVerification.Email): userVerification, fmt.Sprintf("user:email:%s", userVerification.Email): userVerification,
fmt.Sprintf("user:id:%s", userVerification.ID): userVerification, fmt.Sprintf("user:id:%s", userVerification.ID): userVerification,
}
_ = v.c.MSet(ctx, mapCache, constants.NormalCacheDuration)
} }
_ = v.c.MSet(ctx, mapCache, constants.NormalCacheDuration)
v.c.PublishTask(ctx, constants.StreamEmailName, constants.TaskTypeNotifyHistorianReview, data) v.c.PublishTask(ctx, constants.StreamEmailName, constants.TaskTypeNotifyHistorianReview, data)

View File

@@ -99,7 +99,7 @@ func SendHistorianReviewMail(dto *models.UserVerificationStorageEntity) error {
} }
return SendMail(dto.Email, subject, templatePath, map[string]string{ return SendMail(dto.Email, subject, templatePath, map[string]string{
"NAME": dto.Email, "NAME": dto.Name,
"REASON": dto.ReviewNote, "REASON": dto.ReviewNote,
"APP_URL": feUrl, "APP_URL": feUrl,
}) })