You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.7 KiB
54 lines
1.7 KiB
package services
|
|
|
|
import (
|
|
"git.devices.local/mawas/golang-api-skeleton/lib/common"
|
|
"git.devices.local/mawas/golang-api-skeleton/models"
|
|
)
|
|
|
|
type userRepository interface {
|
|
ReadByUsername(username string) (*models.User, error)
|
|
ReadAll() ([]*models.User, error)
|
|
ReadSelection(ids []common.GUID) ([]*models.User, error)
|
|
Create(users []*models.User) ([]*models.User, error)
|
|
}
|
|
|
|
type UserService struct {
|
|
repo userRepository
|
|
}
|
|
|
|
// NewUserService creates a new UserService with the given user DAO.
|
|
func NewUserService(repo userRepository) *UserService {
|
|
return &UserService{repo}
|
|
}
|
|
|
|
// ReadByUsername just retrieves user using User DAO, here can be additional logic for processing data retrieved by DAOs
|
|
func (s *UserService) ReadByID(id interface{}) (*models.User, error) {
|
|
return s.repo.ReadByUsername(id.(string))
|
|
}
|
|
|
|
// ReadAll just retrieves user using User DAO, here can be additional logic for processing data retrieved by DAOs
|
|
func (s *UserService) ReadAll() ([]*models.User, error) {
|
|
return s.repo.ReadAll()
|
|
}
|
|
|
|
// ReadAll just retrieves user using User DAO, here can be additional logic for processing data retrieved by DAOs
|
|
func (s *UserService) ReadSelection(ids []common.GUID) ([]*models.User, error) {
|
|
return s.repo.ReadSelection(ids)
|
|
}
|
|
|
|
// Create just retrieves user using User DAO, here can be additional logic for processing data retrieved by DAOs
|
|
func (s *UserService) Create(users []*models.User) ([]*models.User, error) {
|
|
return s.repo.Create(users)
|
|
}
|
|
|
|
// NewUser returns a new created User object
|
|
func NewUser(username, firstname, lastname, email string) models.User {
|
|
return models.User{
|
|
Username: username,
|
|
Firstname: firstname,
|
|
Lastname: lastname,
|
|
Email: email,
|
|
PasswordHash: "generate_password_here",
|
|
Active: true,
|
|
}
|
|
}
|