33 lines
840 B
Go
33 lines
840 B
Go
package service
|
|
|
|
import "butterfliu/internal/repository"
|
|
|
|
type SongService struct {
|
|
songRepo *repository.SongRepository
|
|
mediaRepo *repository.MediaRepository
|
|
}
|
|
|
|
func NewSongService(songRepo *repository.SongRepository, mediaRepo *repository.MediaRepository) *SongService {
|
|
return &SongService{songRepo, mediaRepo}
|
|
}
|
|
|
|
func (s *SongService) GetAll() ([]repository.Song, error) {
|
|
return s.songRepo.GetAll()
|
|
}
|
|
|
|
func (s *SongService) GetAllWithDetails() ([]repository.SongDetail, error) {
|
|
return s.songRepo.GetAllWithDetails()
|
|
}
|
|
|
|
func (service *SongService) GetMediaFile(id int) (repository.MediaFile, error) {
|
|
song, err := service.songRepo.Get(id)
|
|
if err != nil {
|
|
return repository.MediaFile{}, err
|
|
}
|
|
media, err := service.mediaRepo.Get(song.MediaFileID)
|
|
if err != nil {
|
|
return repository.MediaFile{}, err
|
|
}
|
|
return media, nil
|
|
}
|