Storm PlaylistRepository complete.
This commit is contained in:
+1
-1
@@ -58,7 +58,7 @@ func initMediaAnnotationController() *MediaAnnotationController {
|
|||||||
|
|
||||||
func initPlaylistsController() *PlaylistsController {
|
func initPlaylistsController() *PlaylistsController {
|
||||||
itunesControl := itunesbridge.NewItunesControl()
|
itunesControl := itunesbridge.NewItunesControl()
|
||||||
playlistRepository := db_ledis.NewPlaylistRepository()
|
playlistRepository := db_storm.NewPlaylistRepository()
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
mediaFileRepository := db_storm.NewMediaFileRepository()
|
||||||
playlists := engine.NewPlaylists(itunesControl, playlistRepository, mediaFileRepository)
|
playlists := engine.NewPlaylists(itunesControl, playlistRepository, mediaFileRepository)
|
||||||
playlistsController := NewPlaylistsController(playlists)
|
playlistsController := NewPlaylistsController(playlists)
|
||||||
|
|||||||
@@ -7,5 +7,4 @@ import (
|
|||||||
var Set = wire.NewSet(
|
var Set = wire.NewSet(
|
||||||
NewCheckSumRepository,
|
NewCheckSumRepository,
|
||||||
NewNowPlayingRepository,
|
NewNowPlayingRepository,
|
||||||
NewPlaylistRepository,
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -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{})
|
||||||
@@ -11,5 +11,6 @@ var Set = wire.NewSet(
|
|||||||
NewAlbumRepository,
|
NewAlbumRepository,
|
||||||
NewMediaFileRepository,
|
NewMediaFileRepository,
|
||||||
NewArtistIndexRepository,
|
NewArtistIndexRepository,
|
||||||
|
NewPlaylistRepository,
|
||||||
persistence.NewMediaFolderRepository,
|
persistence.NewMediaFolderRepository,
|
||||||
)
|
)
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ func initImporter(musicFolder string) *scanner.Importer {
|
|||||||
albumRepository := db_storm.NewAlbumRepository()
|
albumRepository := db_storm.NewAlbumRepository()
|
||||||
artistRepository := db_storm.NewArtistRepository()
|
artistRepository := db_storm.NewArtistRepository()
|
||||||
artistIndexRepository := db_storm.NewArtistIndexRepository()
|
artistIndexRepository := db_storm.NewArtistIndexRepository()
|
||||||
playlistRepository := db_ledis.NewPlaylistRepository()
|
playlistRepository := db_storm.NewPlaylistRepository()
|
||||||
propertyRepository := db_storm.NewPropertyRepository()
|
propertyRepository := db_storm.NewPropertyRepository()
|
||||||
db := newDB()
|
db := newDB()
|
||||||
search := engine.NewSearch(artistRepository, albumRepository, mediaFileRepository, db)
|
search := engine.NewSearch(artistRepository, albumRepository, mediaFileRepository, db)
|
||||||
|
|||||||
Reference in New Issue
Block a user