Files
resume/internal/service/user/user_service.go
T

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