Added a new layer: engine (equivalent to use cases in Clean Architecture). Should make testing things easier
This commit is contained in:
@@ -2,15 +2,20 @@ package conf
|
||||
|
||||
import (
|
||||
"github.com/deluan/gosonic/domain"
|
||||
"github.com/deluan/gosonic/engine"
|
||||
"github.com/deluan/gosonic/persistence"
|
||||
"github.com/deluan/gosonic/utils"
|
||||
)
|
||||
|
||||
func init() {
|
||||
utils.DefineSingleton(new(domain.ArtistIndexRepository), persistence.NewArtistIndexRepository)
|
||||
utils.DefineSingleton(new(domain.PropertyRepository), persistence.NewPropertyRepository)
|
||||
utils.DefineSingleton(new(domain.MediaFolderRepository), persistence.NewMediaFolderRepository)
|
||||
// Persistence
|
||||
ir := utils.DefineSingleton(new(domain.ArtistIndexRepository), persistence.NewArtistIndexRepository)
|
||||
pr := utils.DefineSingleton(new(domain.PropertyRepository), persistence.NewPropertyRepository)
|
||||
mfr := 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)
|
||||
|
||||
// Engine (Use cases)
|
||||
utils.DefineSingleton(new(engine.Browser), engine.NewBrowser, pr, mfr, ir)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user