HEAVY: finish music service migration, tidy up services, more tests
This commit is contained in:
parent
9e311df462
commit
90a671982c
47 changed files with 2698 additions and 902 deletions
81
service/music/track.go
Normal file
81
service/music/track.go
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
package music
|
||||
|
||||
import (
|
||||
"arimelody-web/model"
|
||||
"arimelody-web/errors"
|
||||
)
|
||||
|
||||
|
||||
func (s *MusicService) GetAllTracks() ([]*model.Track, error) {
|
||||
return s.repo.GetAllTracks()
|
||||
}
|
||||
func (s *MusicService) GetTrackCount() (int, error) {
|
||||
return s.repo.GetTrackCount()
|
||||
}
|
||||
func (s *MusicService) GetTrackByID(id string) (*model.Track, error) {
|
||||
track, err := s.repo.GetTrackByID(id)
|
||||
if err != nil { return nil, err }
|
||||
if track == nil { return nil, errors.NewNotExistError("Track does not exist") }
|
||||
return track, nil
|
||||
}
|
||||
func (s *MusicService) GetOrphanTracks() ([]*model.Track, error) {
|
||||
return s.repo.GetOrphanTracks()
|
||||
}
|
||||
func (s *MusicService) GetTracksNotOnRelease(releaseID string) ([]*model.Track, error) {
|
||||
return s.repo.GetTracksNotOnRelease(releaseID)
|
||||
}
|
||||
func (s *MusicService) GetTrackReleases(trackID string) ([]*model.Release, error) {
|
||||
return s.repo.GetTrackReleases(trackID)
|
||||
}
|
||||
func (s *MusicService) GetTrackFullReleases(trackID string) ([]*model.Release, error) {
|
||||
releases, err := s.GetTrackReleases(trackID)
|
||||
if err != nil { return nil, err }
|
||||
for _, release := range releases {
|
||||
if err := s.fillRelease(release); err != nil { return nil, err }
|
||||
}
|
||||
return releases, nil
|
||||
}
|
||||
|
||||
func (s *MusicService) CreateTrack(title string, description string, lyrics string, previewURL string) (string, error) {
|
||||
if len(title) == 0 { return "", errors.NewValidationError("Track title cannot be empty") }
|
||||
id, err := s.repo.CreateTrack(title, description, lyrics, previewURL)
|
||||
if err != nil { return "", err }
|
||||
s.log.Printf("Created track '%s' (%s)", title, id)
|
||||
return id, nil
|
||||
}
|
||||
|
||||
func (s *MusicService) UpdateTrack(track *model.Track) error {
|
||||
if len(track.Title) == 0 { return errors.NewValidationError("Track title cannot be empty") }
|
||||
if err := s.repo.UpdateTrack(track); err != nil { return err }
|
||||
s.log.Printf("Updated track '%s' (%s)", track.Title, track.ID)
|
||||
return nil
|
||||
}
|
||||
func (s *MusicService) UpdateTrackTitle(id string, title string) error {
|
||||
if len(title) == 0 { return errors.NewValidationError("Track title cannot be empty") }
|
||||
if err := s.repo.UpdateTrackTitle(id, title); err != nil { return err }
|
||||
s.log.Printf("Updated track %s title to '%s'", id, title)
|
||||
return nil
|
||||
}
|
||||
func (s *MusicService) UpdateTrackDescription(id string, description string) error {
|
||||
if err := s.repo.UpdateTrackDescription(id, description); err != nil { return err }
|
||||
s.log.Printf("Updated track %s description to '%s'", id, description)
|
||||
return nil
|
||||
}
|
||||
func (s *MusicService) UpdateTrackLyrics(id string, lyrics string) error {
|
||||
if err := s.repo.UpdateTrackLyrics(id, lyrics); err != nil { return err }
|
||||
s.log.Printf("Updated track %s lyrics to '%s'", id, lyrics)
|
||||
return nil
|
||||
}
|
||||
func (s *MusicService) UpdateTrackPreviewURL(id string, previewURL string) error {
|
||||
if err := s.repo.UpdateTrackPreviewURL(id, previewURL); err != nil { return err }
|
||||
s.log.Printf("Updated track %s preview URL to '%s'", id, previewURL)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *MusicService) DeleteTrack(id string) error {
|
||||
deletedID, err := s.repo.DeleteTrack(id)
|
||||
if err != nil { return err }
|
||||
if deletedID == "" { return errors.NewNotExistError("Track does not exist") }
|
||||
s.log.Printf("Deleted track %s", id)
|
||||
return nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue