mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-16 20:12:22 +03:00
Storm PlaylistRepository complete.
This commit is contained in:
parent
70d7793147
commit
4f151a7409
@ -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)
|
||||
|
@ -7,5 +7,4 @@ import (
|
||||
var Set = wire.NewSet(
|
||||
NewCheckSumRepository,
|
||||
NewNowPlayingRepository,
|
||||
NewPlaylistRepository,
|
||||
)
|
||||
|
65
persistence/db_storm/playlist_repository.go
Normal file
65
persistence/db_storm/playlist_repository.go
Normal 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{})
|
@ -11,5 +11,6 @@ var Set = wire.NewSet(
|
||||
NewAlbumRepository,
|
||||
NewMediaFileRepository,
|
||||
NewArtistIndexRepository,
|
||||
NewPlaylistRepository,
|
||||
persistence.NewMediaFolderRepository,
|
||||
)
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user