Files
navidrome/conf/inject_definitions.go
T
2016-03-11 00:37:07 -05:00

42 lines
1.7 KiB
Go

package conf
import (
"github.com/deluan/gomate"
"github.com/deluan/gosonic/domain"
"github.com/deluan/gosonic/engine"
"github.com/deluan/gosonic/persistence"
"github.com/deluan/gosonic/utils"
"github.com/deluan/gosonic/scanner"
)
func init() {
// Persistence
utils.DefineSingleton(new(domain.ArtistIndexRepository), persistence.NewArtistIndexRepository)
utils.DefineSingleton(new(domain.MediaFolderRepository), persistence.NewMediaFolderRepository)
utils.DefineSingleton(new(domain.ArtistRepository), persistence.NewArtistRepository)
utils.DefineSingleton(new(domain.AlbumRepository), persistence.NewAlbumRepository)
utils.DefineSingleton(new(domain.MediaFileRepository), persistence.NewMediaFileRepository)
utils.DefineSingleton(new(domain.PlaylistRepository), persistence.NewPlaylistRepository)
// Engine (Use cases)
utils.DefineSingleton(new(engine.PropertyRepository), persistence.NewPropertyRepository)
utils.DefineSingleton(new(engine.Browser), engine.NewBrowser)
utils.DefineSingleton(new(engine.ListGenerator), engine.NewListGenerator)
utils.DefineSingleton(new(engine.Cover), engine.NewCover)
utils.DefineSingleton(new(engine.Playlists), engine.NewPlaylists)
utils.DefineSingleton(new(engine.Search), engine.NewSearch)
// Other dependencies
utils.DefineSingleton(new(scanner.Scanner), scanner.NewItunesScanner)
utils.DefineSingleton(new(gomate.DB), func() gomate.DB {
return gomate.NewLedisEmbeddedDB(persistence.Db())
})
//utils.DefineSingleton(new(gomate.Indexer), func() gomate.Indexer {
// return gomate.NewIndexer(gomate.NewLedisEmbeddedDB(persistence.Db()))
//})
//utils.DefineSingleton(new(gomate.Searcher), func() gomate.Searcher {
// return gomate.NewSearcher(gomate.NewLedisEmbeddedDB(persistence.Db()))
//})
}