learnsteam-quiz-api/internal/services/program.go

57 lines
1.4 KiB
Go
Raw Normal View History

2023-11-17 01:38:01 +09:00
package services
import (
"learnsteam/learsteam-quiz-api/internal/models"
"learnsteam/learsteam-quiz-api/internal/repositories"
)
type programService struct {
repository repositories.ProgramRepository
}
type ProgramService interface {
List(string, string, int, int) (*[]models.Program, error)
Total(string, string) (int64, error)
Find(string) (*models.Program, error)
Create(*models.Program) (*models.Program, error)
Update(*models.Program) (*models.Program, error)
Delete(string) error
}
func NewProgramService(repository repositories.ProgramRepository) ProgramService {
return &programService{
repository: repository,
}
}
func (s *programService) List(q string, tag string, page int, limit int) (*[]models.Program, error) {
return s.repository.List(q, tag, page, limit)
}
func (s *programService) Total(q string, tag string) (int64, error) {
return s.repository.Total(q, tag)
}
func (s *programService) Find(id string) (*models.Program, error) {
return s.repository.Find(id)
}
func (s *programService) Create(program *models.Program) (*models.Program, error) {
result, err := s.repository.Create(program)
return result, err
}
func (s *programService) Update(program *models.Program) (*models.Program, error) {
result, err := s.repository.Update(program)
return result, err
}
func (s *programService) Delete(id string) error {
err := s.repository.Delete(id)
return err
}