add: mockSMTP Server for testing; getUser func

This commit is contained in:
$(pass /github/name)
2024-08-08 09:29:49 +02:00
parent 602ac0fef0
commit c02b96e538
9 changed files with 321 additions and 187 deletions

View File

@@ -17,6 +17,7 @@ import (
type UserRepositoryInterface interface {
CreateUser(user *models.User) (int64, error)
UpdateUser(userID int64, user *models.User) error
GetUsers(where map[string]interface{}) (*[]models.User, error)
FindUserByID(id int64) (*models.User, error)
FindUserByEmail(email string) (*models.User, error)
SetVerificationToken(user *models.User, token *string) (int64, error)
@@ -51,6 +52,24 @@ func (ur *UserRepository) UpdateUser(userID int64, user *models.User) error {
return nil
}
func (ur *UserRepository) GetUsers(where map[string]interface{}) (*[]models.User, error) {
var users []models.User
result := database.DB.
Preload("Consents").
Preload("BankAccount").
Preload("Verification").
Preload("Membership", func(db *gorm.DB) *gorm.DB {
return db.Preload("SubscriptionModel")
}).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 (ur *UserRepository) FindUserByID(id int64) (*models.User, error) {
var user models.User
result := database.DB.