2016-03-29 14:27:14 -08:00
|
|
|
package init
|
2016-03-01 05:38:43 -09:00
|
|
|
|
|
|
|
|
import (
|
2016-03-10 19:19:13 -09:00
|
|
|
"github.com/deluan/gomate"
|
2016-03-27 13:20:46 -08:00
|
|
|
"github.com/deluan/gomate/ledis"
|
2016-03-02 05:07:24 -09:00
|
|
|
"github.com/deluan/gosonic/domain"
|
2016-03-07 06:57:32 -09:00
|
|
|
"github.com/deluan/gosonic/engine"
|
2016-03-02 09:18:39 -09:00
|
|
|
"github.com/deluan/gosonic/persistence"
|
|
|
|
|
"github.com/deluan/gosonic/utils"
|
2016-03-10 19:19:13 -09:00
|
|
|
|
2016-03-11 16:49:01 -09:00
|
|
|
"github.com/deluan/gosonic/itunesbridge"
|
2016-03-10 19:19:13 -09:00
|
|
|
"github.com/deluan/gosonic/scanner"
|
2016-03-01 05:38:43 -09:00
|
|
|
)
|
|
|
|
|
|
2016-03-02 09:18:39 -09:00
|
|
|
func init() {
|
2016-03-07 06:57:32 -09:00
|
|
|
// Persistence
|
2016-03-08 14:33:35 -09:00
|
|
|
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)
|
2016-03-09 06:09:15 -09:00
|
|
|
utils.DefineSingleton(new(domain.PlaylistRepository), persistence.NewPlaylistRepository)
|
2016-03-07 06:57:32 -09:00
|
|
|
|
|
|
|
|
// Engine (Use cases)
|
2016-03-08 14:40:16 -09:00
|
|
|
utils.DefineSingleton(new(engine.PropertyRepository), persistence.NewPropertyRepository)
|
2016-03-16 16:27:48 -08:00
|
|
|
utils.DefineSingleton(new(engine.NowPlayingRepository), persistence.NewNowPlayingRepository)
|
2016-03-08 14:33:35 -09:00
|
|
|
utils.DefineSingleton(new(engine.Browser), engine.NewBrowser)
|
2016-03-08 15:13:36 -09:00
|
|
|
utils.DefineSingleton(new(engine.ListGenerator), engine.NewListGenerator)
|
2016-03-08 19:05:54 -09:00
|
|
|
utils.DefineSingleton(new(engine.Cover), engine.NewCover)
|
2016-03-09 06:09:15 -09:00
|
|
|
utils.DefineSingleton(new(engine.Playlists), engine.NewPlaylists)
|
2016-03-10 19:19:13 -09:00
|
|
|
utils.DefineSingleton(new(engine.Search), engine.NewSearch)
|
2016-03-16 13:48:44 -08:00
|
|
|
utils.DefineSingleton(new(engine.Scrobbler), engine.NewScrobbler)
|
2016-03-23 13:46:54 -08:00
|
|
|
utils.DefineSingleton(new(engine.Ratings), engine.NewRatings)
|
2016-03-10 19:19:13 -09:00
|
|
|
|
2016-03-15 07:04:17 -08:00
|
|
|
utils.DefineSingleton(new(scanner.CheckSumRepository), persistence.NewCheckSumRepository)
|
|
|
|
|
utils.DefineSingleton(new(scanner.Scanner), scanner.NewItunesScanner)
|
|
|
|
|
|
2016-03-10 19:19:13 -09:00
|
|
|
// Other dependencies
|
2016-03-11 16:49:01 -09:00
|
|
|
utils.DefineSingleton(new(itunesbridge.ItunesControl), itunesbridge.NewItunesControl)
|
2016-03-10 20:37:07 -09:00
|
|
|
utils.DefineSingleton(new(gomate.DB), func() gomate.DB {
|
2016-03-27 13:24:59 -08:00
|
|
|
return ledis.NewEmbeddedDB(persistence.Db())
|
2016-03-10 19:19:13 -09:00
|
|
|
})
|
2016-03-01 05:38:43 -09:00
|
|
|
}
|