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

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,
}
}