backend: add: DeleteUser, fix: validation
This commit is contained in:
@@ -21,10 +21,15 @@ type UserRepositoryInterface interface {
|
||||
SetVerificationToken(verification *models.Verification) (uint, error)
|
||||
IsVerified(userID *uint) (bool, error)
|
||||
GetVerificationOfToken(token *string) (*models.Verification, error)
|
||||
DeleteUser(id uint) error
|
||||
}
|
||||
|
||||
type UserRepository struct{}
|
||||
|
||||
func (ur *UserRepository) DeleteUser(id uint) error {
|
||||
return database.DB.Delete(&models.User{}, "id = ?", id).Error
|
||||
}
|
||||
|
||||
func PasswordExists(userID *uint) (bool, error) {
|
||||
var user models.User
|
||||
result := database.DB.Select("password").First(&user, userID)
|
||||
@@ -60,7 +65,7 @@ func (ur *UserRepository) UpdateUser(user *models.User) (*models.User, error) {
|
||||
return err
|
||||
}
|
||||
// Update the user's main fields
|
||||
result := tx.Session(&gorm.Session{FullSaveAssociations: true}).Updates(user)
|
||||
result := tx.Session(&gorm.Session{FullSaveAssociations: true}).Omit("Password").Updates(user)
|
||||
if result.Error != nil {
|
||||
return result.Error
|
||||
}
|
||||
@@ -68,6 +73,14 @@ func (ur *UserRepository) UpdateUser(user *models.User) (*models.User, error) {
|
||||
return errors.ErrNoRowsAffected
|
||||
}
|
||||
|
||||
if user.Password != "" {
|
||||
if err := tx.Model(&models.User{}).
|
||||
Where("id = ?", user.ID).
|
||||
Update("Password", user.Password).Error; err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
// Update the Membership if provided
|
||||
if user.Membership.ID != 0 {
|
||||
if err := tx.Model(&existingUser.Membership).Updates(user.Membership).Error; err != nil {
|
||||
|
||||
Reference in New Issue
Block a user