refac: several unverified users can exist at once: an empty reset or verification code is stored as no value so it doesn't break the unique constraint, and deleting a user removes the row so the same username and email can register again

This commit is contained in:
fsylvain committed 2026-09-24 01:59:24 +02:00
1 parent 0b4e614ec9
commit 6e9e108033
6 files changed
+377 -16

No files matched your search

@@ -5,15 +5,29 @@ import (
"RenewCMS/internal/infrastructure/persistence/models"
)
func nullableStringToDomain(value *string) string {
if value == nil {
return ""
}
return *value
}
func DomainToNullableString(value string) *string {
if value == "" {
return nil
}
return &value
}
func UserToDomain(m models.User) user.User {
return user.User{
ID: m.ID,
Username: m.Username,
Password: m.Password,
PasswordResetCode: m.PasswordResetCode,
PasswordResetCode: nullableStringToDomain(m.PasswordResetCode),
Email: m.Email,
IsVerified: m.IsVerified,
VerificationCode: m.VerificationCode,
VerificationCode: nullableStringToDomain(m.VerificationCode),
VerificationExpiration: m.VerificationExpiration,
CreatedAt: m.CreatedAt,
UpdatedAt: m.UpdatedAt,
@@ -24,10 +38,10 @@ func UserToModel(a user.User) models.User {
return models.User{
Username: a.Username,
Password: a.Password,
PasswordResetCode: a.PasswordResetCode,
PasswordResetCode: DomainToNullableString(a.PasswordResetCode),
Email: a.Email,
IsVerified: a.IsVerified,
VerificationCode: a.VerificationCode,
VerificationCode: DomainToNullableString(a.VerificationCode),
VerificationExpiration: a.VerificationExpiration,
CreatedAt: a.CreatedAt,
UpdatedAt: a.UpdatedAt,