From c8d0904fd7a80c12e6954369f675b2469ff59bae Mon Sep 17 00:00:00 2001 From: Alex <$(pass /github/email)> Date: Tue, 11 Mar 2025 20:46:24 +0100 Subject: [PATCH] del obsolete repos and services --- .../internal/repositories/user_permissions.go | 10 -- .../internal/repositories/user_repository.go | 159 ------------------ .../repositories/user_verification.go | 57 ------- go-backend/internal/services/user_password.go | 21 --- .../internal/services/user_permissions.go | 5 - .../internal/services/user_verification.go | 59 ------- 6 files changed, 311 deletions(-) delete mode 100644 go-backend/internal/repositories/user_permissions.go delete mode 100644 go-backend/internal/repositories/user_repository.go delete mode 100644 go-backend/internal/repositories/user_verification.go delete mode 100644 go-backend/internal/services/user_password.go delete mode 100644 go-backend/internal/services/user_permissions.go delete mode 100644 go-backend/internal/services/user_verification.go diff --git a/go-backend/internal/repositories/user_permissions.go b/go-backend/internal/repositories/user_permissions.go deleted file mode 100644 index 9a1f5c4..0000000 --- a/go-backend/internal/repositories/user_permissions.go +++ /dev/null @@ -1,10 +0,0 @@ -package repositories - -import ( - "GoMembership/internal/database" - "GoMembership/internal/models" -) - -func (r *UserRepository) SetUserStatus(id uint, status uint) error { - return database.DB.Model(&models.User{}).Where("id = ?", id).Update("status", status).Error -} diff --git a/go-backend/internal/repositories/user_repository.go b/go-backend/internal/repositories/user_repository.go deleted file mode 100644 index 7864719..0000000 --- a/go-backend/internal/repositories/user_repository.go +++ /dev/null @@ -1,159 +0,0 @@ -package repositories - -import ( - "gorm.io/gorm" - - "GoMembership/internal/database" - - "gorm.io/gorm/clause" - - "GoMembership/internal/models" - "GoMembership/pkg/errors" - "GoMembership/pkg/logger" -) - -type UserRepositoryInterface interface { - CreateUser(user *models.User) (uint, error) - UpdateUser(user *models.User) (*models.User, error) - GetUsers(where map[string]interface{}) (*[]models.User, error) - GetUserByEmail(email string) (*models.User, error) - IsVerified(userID *uint) (bool, error) - GetVerificationOfToken(token *string, verificationType *string) (*models.Verification, error) - SetVerificationToken(verification *models.Verification) (token string, err error) - DeleteVerification(id uint, verificationType string) error - DeleteUser(id uint) error - SetUserStatus(id uint, status 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) - if result.Error != nil { - return false, result.Error - } - return user.Password != "", nil -} - -func (ur *UserRepository) CreateUser(user *models.User) (uint, error) { - result := database.DB.Create(user) - if result.Error != nil { - logger.Error.Printf("Create User error: %#v", result.Error) - return 0, result.Error - } - return user.ID, nil -} - -func (ur *UserRepository) UpdateUser(user *models.User) (*models.User, error) { - if user == nil { - return nil, errors.ErrNoData - } - - err := database.DB.Transaction(func(tx *gorm.DB) error { - // Check if the user exists in the database - var existingUser models.User - - if err := tx.Preload(clause.Associations). - Preload("Membership"). - Preload("Membership.SubscriptionModel"). - Preload("Licence"). - Preload("Licence.Categories"). - First(&existingUser, user.ID).Error; err != nil { - return err - } - // Update the user's main fields - result := tx.Session(&gorm.Session{FullSaveAssociations: true}).Omit("Password").Updates(user) - if result.Error != nil { - return result.Error - } - if result.RowsAffected == 0 { - 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 { - return err - } - } - - // Replace categories if Licence and Categories are provided - if user.Licence != nil { - if err := tx.Model(&user.Licence).Association("Categories").Replace(user.Licence.Categories); err != nil { - return err - } - } - - return nil - }) - - if err != nil { - return nil, err - } - - var updatedUser models.User - if err := database.DB.Preload("Licence.Categories"). - Preload("Membership"). - First(&updatedUser, user.ID).Error; err != nil { - return nil, err - } - return &updatedUser, nil -} - -func (ur *UserRepository) GetUsers(where map[string]interface{}) (*[]models.User, error) { - var users []models.User - result := database.DB. - Preload(clause.Associations). - Preload("Membership.SubscriptionModel"). - Preload("Licence.Categories"). - Where(where).Find(&users) - if result.Error != nil { - if result.Error == gorm.ErrRecordNotFound { - return nil, gorm.ErrRecordNotFound - } - return nil, result.Error - } - return &users, nil -} - -func GetUserByID(userID *uint) (*models.User, error) { - var user models.User - result := database.DB. - Preload(clause.Associations). - Preload("Membership"). - Preload("Membership.SubscriptionModel"). - Preload("Licence.Categories"). - First(&user, userID) - if result.Error != nil { - if result.Error == gorm.ErrRecordNotFound { - return nil, gorm.ErrRecordNotFound - } - return nil, result.Error - } - return &user, nil -} - -func (ur *UserRepository) GetUserByEmail(email string) (*models.User, error) { - var user models.User - result := database.DB.Where("email = ?", email).First(&user) - if result.Error != nil { - if result.Error == gorm.ErrRecordNotFound { - return nil, gorm.ErrRecordNotFound - } - return nil, result.Error - } - return &user, nil -} diff --git a/go-backend/internal/repositories/user_verification.go b/go-backend/internal/repositories/user_verification.go deleted file mode 100644 index 24bcb96..0000000 --- a/go-backend/internal/repositories/user_verification.go +++ /dev/null @@ -1,57 +0,0 @@ -package repositories - -import ( - "GoMembership/internal/constants" - "GoMembership/internal/database" - "GoMembership/internal/models" - - "gorm.io/gorm" - "gorm.io/gorm/clause" -) - -func (ur *UserRepository) IsVerified(userID *uint) (bool, error) { - var user models.User - result := database.DB.Select("status").First(&user, userID) - if result.Error != nil { - if result.Error == gorm.ErrRecordNotFound { - return false, gorm.ErrRecordNotFound - } - return false, result.Error - } - return user.Status > constants.DisabledStatus, nil -} - -func (ur *UserRepository) GetVerificationOfToken(token *string, verificationType *string) (*models.Verification, error) { - - var emailVerification models.Verification - result := database.DB.Where("verification_token = ? AND type = ?", token, verificationType).First(&emailVerification) - if result.Error != nil { - if result.Error == gorm.ErrRecordNotFound { - return nil, gorm.ErrRecordNotFound - } - return nil, result.Error - } - return &emailVerification, nil -} - -func (ur *UserRepository) SetVerificationToken(verification *models.Verification) (token string, err error) { - - result := database.DB.Clauses(clause.OnConflict{ - Columns: []clause.Column{{Name: "user_id"}}, - DoUpdates: clause.AssignmentColumns([]string{"verification_token", "created_at", "type"}), - }).Create(&verification) - - if result.Error != nil { - return "", result.Error - } - - return verification.VerificationToken, nil -} - -func (ur *UserRepository) DeleteVerification(id uint, verificationType string) error { - result := database.DB.Where("user_id = ? AND type = ?", id, verificationType).Delete(&models.Verification{}) - if result.Error != nil { - return result.Error - } - return nil -} diff --git a/go-backend/internal/services/user_password.go b/go-backend/internal/services/user_password.go deleted file mode 100644 index adaf46b..0000000 --- a/go-backend/internal/services/user_password.go +++ /dev/null @@ -1,21 +0,0 @@ -package services - -import ( - "GoMembership/internal/constants" - "GoMembership/internal/models" -) - -func (s *UserService) HandlePasswordChangeRequest(user *models.User) (token string, err error) { - // Deactivate user and reset Verification - if err := s.SetUserStatus(user.ID, constants.DisabledStatus); err != nil { - return "", err - } - - if err := s.RevokeVerification(&user.ID, constants.VerificationTypes.Password); err != nil { - return "", err - } - - // Generate a token - return s.SetVerificationToken(&user.ID, &constants.VerificationTypes.Password) - -} diff --git a/go-backend/internal/services/user_permissions.go b/go-backend/internal/services/user_permissions.go deleted file mode 100644 index 89f9799..0000000 --- a/go-backend/internal/services/user_permissions.go +++ /dev/null @@ -1,5 +0,0 @@ -package services - -func (s *UserService) SetUserStatus(id uint, status uint) error { - return s.Repo.SetUserStatus(id, status) -} diff --git a/go-backend/internal/services/user_verification.go b/go-backend/internal/services/user_verification.go deleted file mode 100644 index cecd3fa..0000000 --- a/go-backend/internal/services/user_verification.go +++ /dev/null @@ -1,59 +0,0 @@ -package services - -import ( - "GoMembership/internal/models" - "GoMembership/internal/utils" - "GoMembership/pkg/errors" - "time" -) - -func (s *UserService) SetVerificationToken(id *uint, verificationType *string) (string, error) { - - token, err := utils.GenerateVerificationToken() - if err != nil { - return "", err - } - - // Check if user is already verified - verified, err := s.Repo.IsVerified(id) - if err != nil { - return "", err - } - if verified { - return "", errors.ErrAlreadyVerified - } - - // Prepare the Verification record - verification := models.Verification{ - UserID: *id, - VerificationToken: token, - Type: *verificationType, - } - - return s.Repo.SetVerificationToken(&verification) -} - -func (s *UserService) RevokeVerification(id *uint, verificationType string) error { - return s.Repo.DeleteVerification(*id, verificationType) - -} - -func (service *UserService) VerifyUser(token *string, verificationType *string) (*models.Verification, error) { - verification, err := service.Repo.GetVerificationOfToken(token, verificationType) - if err != nil { - return nil, err - } - - // Check if the user is already verified - verified, err := service.Repo.IsVerified(&verification.UserID) - if err != nil { - return nil, err - } - if verified { - return nil, errors.ErrAlreadyVerified - } - t := time.Now() - verification.VerifiedAt = &t - - return verification, nil -}