41 lines
1.1 KiB
Go
41 lines
1.1 KiB
Go
package repositories
|
|
|
|
import (
|
|
"git.secnex.io/secnex/masterlog"
|
|
"git.secnex.io/secnex/mgmt-api/database"
|
|
"git.secnex.io/secnex/mgmt-api/models"
|
|
)
|
|
|
|
func GetUserByUsername(username string) (*models.User, error) {
|
|
var user *models.User
|
|
if err := database.DB.Where("username = ?", username).First(&user).Error; err != nil {
|
|
return nil, err
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
func GetUserByUniqueFields(username, email string) (*models.User, error) {
|
|
var user *models.User
|
|
if err := database.DB.Where("username = ? OR email = ?", username, email).First(&user).Error; err != nil {
|
|
return nil, nil
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
func CreateUser(firstName, lastName, username, password, email string) error {
|
|
user := &models.User{
|
|
FirstName: firstName,
|
|
LastName: lastName,
|
|
Username: username,
|
|
Password: password,
|
|
Email: email,
|
|
}
|
|
|
|
if err := database.DB.Create(user).Error; err != nil {
|
|
masterlog.Debug("Failed to create user in database", map[string]interface{}{"error": err.Error(), "username": username, "email": email})
|
|
return err
|
|
}
|
|
masterlog.Debug("User created successfully", map[string]interface{}{"username": username, "email": email})
|
|
return nil
|
|
}
|