Storm PlaylistRepository complete.

This commit is contained in:
Deluan 2020-01-10 19:58:30 -05:00 committed by Deluan Quintão
parent 70d7793147
commit 4f151a7409
5 changed files with 68 additions and 3 deletions

View File

@ -58,7 +58,7 @@ func initMediaAnnotationController() *MediaAnnotationController {
func initPlaylistsController() *PlaylistsController {
itunesControl := itunesbridge.NewItunesControl()
playlistRepository := db_ledis.NewPlaylistRepository()
playlistRepository := db_storm.NewPlaylistRepository()
mediaFileRepository := db_storm.NewMediaFileRepository()
playlists := engine.NewPlaylists(itunesControl, playlistRepository, mediaFileRepository)
playlistsController := NewPlaylistsController(playlists)

View File

@ -7,5 +7,4 @@ import (
var Set = wire.NewSet(
NewCheckSumRepository,
NewNowPlayingRepository,
NewPlaylistRepository,
)

View File

@ -0,0 +1,65 @@
package db_storm
import (
"github.com/cloudsonic/sonic-server/domain"
)
type _Playlist struct {
ID string
Name string
Comment string
FullPath string
Duration int
Owner string
Public bool
Tracks []string
}
type playlistRepository struct {
stormRepository
}
func NewPlaylistRepository() domain.PlaylistRepository {
r := &playlistRepository{}
r.init(&_Playlist{})
return r
}
func (r *playlistRepository) Put(p *domain.Playlist) error {
tp := _Playlist(*p)
return Db().Save(&tp)
}
func (r *playlistRepository) Get(id string) (*domain.Playlist, error) {
tp := &_Playlist{}
err := r.getByID(id, tp)
if err != nil {
return nil, err
}
a := domain.Playlist(*tp)
return &a, err
}
func (r *playlistRepository) GetAll(options domain.QueryOptions) (domain.Playlists, error) {
var all []_Playlist
err := r.getAll(&all, &options)
if err != nil {
return nil, err
}
return r.toPlaylists(all)
}
func (r *playlistRepository) toPlaylists(all []_Playlist) (domain.Playlists, error) {
result := make(domain.Playlists, len(all))
for i, p := range all {
result[i] = domain.Playlist(p)
}
return result, nil
}
func (r *playlistRepository) PurgeInactive(activeList domain.Playlists) ([]string, error) {
return r.purgeInactive(activeList)
}
var _ domain.PlaylistRepository = (*playlistRepository)(nil)
var _ = domain.Playlist(_Playlist{})

View File

@ -11,5 +11,6 @@ var Set = wire.NewSet(
NewAlbumRepository,
NewMediaFileRepository,
NewArtistIndexRepository,
NewPlaylistRepository,
persistence.NewMediaFolderRepository,
)

View File

@ -25,7 +25,7 @@ func initImporter(musicFolder string) *scanner.Importer {
albumRepository := db_storm.NewAlbumRepository()
artistRepository := db_storm.NewArtistRepository()
artistIndexRepository := db_storm.NewArtistIndexRepository()
playlistRepository := db_ledis.NewPlaylistRepository()
playlistRepository := db_storm.NewPlaylistRepository()
propertyRepository := db_storm.NewPropertyRepository()
db := newDB()
search := engine.NewSearch(artistRepository, albumRepository, mediaFileRepository, db)