57 lines
1.4 KiB
Go
57 lines
1.4 KiB
Go
package user
|
|
|
|
import (
|
|
"resume-platform/internal/model"
|
|
"resume-platform/internal/repository"
|
|
|
|
"github.com/google/uuid"
|
|
)
|
|
|
|
type UserService interface {
|
|
CreateUser(user *model.User) error
|
|
GetUserByUsername(username string) (*model.User, error)
|
|
GetUserByID(id string) (*model.User, error)
|
|
GetAllUsers() ([]*model.User, error)
|
|
GetUsersWithPagination(page, pageSize int) ([]*model.User, int, error)
|
|
UpdateUser(id string, user *model.User) error
|
|
DeleteUser(id string) error
|
|
}
|
|
|
|
type userService struct {
|
|
repo repository.ResumeRepository
|
|
}
|
|
|
|
func NewUserService(repo repository.ResumeRepository) UserService {
|
|
return &userService{repo: repo}
|
|
}
|
|
|
|
func (s *userService) CreateUser(user *model.User) error {
|
|
if user.ID == "" {
|
|
user.ID = uuid.New().String()
|
|
}
|
|
return s.repo.CreateUser(user)
|
|
}
|
|
|
|
func (s *userService) GetUserByUsername(username string) (*model.User, error) {
|
|
return s.repo.GetUserByUsername(username)
|
|
}
|
|
|
|
func (s *userService) GetUserByID(id string) (*model.User, error) {
|
|
return s.repo.GetUserByID(id)
|
|
}
|
|
|
|
func (s *userService) GetAllUsers() ([]*model.User, error) {
|
|
return s.repo.GetAllUsers()
|
|
}
|
|
|
|
func (s *userService) GetUsersWithPagination(page, pageSize int) ([]*model.User, int, error) {
|
|
return s.repo.GetUsersWithPagination(page, pageSize)
|
|
}
|
|
|
|
func (s *userService) UpdateUser(id string, user *model.User) error {
|
|
return s.repo.UpdateUser(id, user)
|
|
}
|
|
|
|
func (s *userService) DeleteUser(id string) error {
|
|
return s.repo.DeleteUser(id)
|
|
} |