52 lines
1.7 KiB
Go
52 lines
1.7 KiB
Go
package portfolio
|
|
|
|
import (
|
|
"resume-platform/internal/model"
|
|
"resume-platform/internal/repository"
|
|
)
|
|
|
|
type PortfolioService interface {
|
|
GetPortfolioItems() ([]*model.PortfolioItem, error)
|
|
GetPortfolioItemsWithPagination(page, pageSize int) ([]*model.PortfolioItem, int, error)
|
|
GetPortfolioItemsByUserID(userID string) ([]*model.PortfolioItem, error)
|
|
GetPortfolioItem(id uint) (*model.PortfolioItem, error)
|
|
CreatePortfolioItem(item *model.PortfolioItem) error
|
|
UpdatePortfolioItem(id uint, item *model.PortfolioItem) error
|
|
DeletePortfolioItem(id uint) error
|
|
}
|
|
|
|
type portfolioService struct {
|
|
repo repository.ResumeRepository
|
|
}
|
|
|
|
func NewPortfolioService(repo repository.ResumeRepository) PortfolioService {
|
|
return &portfolioService{repo: repo}
|
|
}
|
|
|
|
func (s *portfolioService) GetPortfolioItems() ([]*model.PortfolioItem, error) {
|
|
return s.repo.GetPortfolioItems()
|
|
}
|
|
|
|
func (s *portfolioService) GetPortfolioItemsWithPagination(page, pageSize int) ([]*model.PortfolioItem, int, error) {
|
|
return s.repo.GetPortfolioItemsWithPagination(page, pageSize)
|
|
}
|
|
|
|
func (s *portfolioService) GetPortfolioItemsByUserID(userID string) ([]*model.PortfolioItem, error) {
|
|
return s.repo.GetPortfolioItemsByUserID(userID)
|
|
}
|
|
|
|
func (s *portfolioService) GetPortfolioItem(id uint) (*model.PortfolioItem, error) {
|
|
return s.repo.GetPortfolioItem(id)
|
|
}
|
|
|
|
func (s *portfolioService) CreatePortfolioItem(item *model.PortfolioItem) error {
|
|
return s.repo.CreatePortfolioItem(item)
|
|
}
|
|
|
|
func (s *portfolioService) UpdatePortfolioItem(id uint, item *model.PortfolioItem) error {
|
|
return s.repo.UpdatePortfolioItem(id, item)
|
|
}
|
|
|
|
func (s *portfolioService) DeletePortfolioItem(id uint) error {
|
|
return s.repo.DeletePortfolioItem(id)
|
|
} |