// Checks if a user with that email already exists in the database. If it does, // it returns an error, else it hashes the password, saves the new user // and returns the user. func (s *userService) Create(user *models.User) error { var err error user.Username = s.SanitizeUsername(user.Username) result, err := s.FindByUsername(user.Username) if err != nil { return err } else if result != nil { return DuplicateUsernameError } hashedPassword, err := s.EncryptPassword(user.Password) if err != nil { return err } user.Password = string(hashedPassword) user.Status = int(Enabled) err = s.db.Create(&user).Error if err != nil { return err } return nil }