Move API dependency injection to main package, opening the possibility to switch persistence without code changes
This commit is contained in:
parent
52f682debf
commit
30ebbc1fa1
41
api/api.go
41
api/api.go
|
@ -8,6 +8,8 @@ import (
|
||||||
|
|
||||||
"github.com/cloudsonic/sonic-server/api/responses"
|
"github.com/cloudsonic/sonic-server/api/responses"
|
||||||
"github.com/cloudsonic/sonic-server/conf"
|
"github.com/cloudsonic/sonic-server/conf"
|
||||||
|
"github.com/cloudsonic/sonic-server/domain"
|
||||||
|
"github.com/cloudsonic/sonic-server/engine"
|
||||||
"github.com/go-chi/chi"
|
"github.com/go-chi/chi"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -15,7 +17,26 @@ const ApiVersion = "1.8.0"
|
||||||
|
|
||||||
type SubsonicHandler = func(http.ResponseWriter, *http.Request) (*responses.Subsonic, error)
|
type SubsonicHandler = func(http.ResponseWriter, *http.Request) (*responses.Subsonic, error)
|
||||||
|
|
||||||
func Router() http.Handler {
|
type Router struct {
|
||||||
|
Browser engine.Browser
|
||||||
|
Cover engine.Cover
|
||||||
|
ListGenerator engine.ListGenerator
|
||||||
|
Playlists engine.Playlists
|
||||||
|
Ratings engine.Ratings
|
||||||
|
Scrobbler engine.Scrobbler
|
||||||
|
Search engine.Search
|
||||||
|
MediaFileRepository domain.MediaFileRepository
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewRouter(browser engine.Browser, cover engine.Cover, listGenerator engine.ListGenerator,
|
||||||
|
playlists engine.Playlists, ratings engine.Ratings, scrobbler engine.Scrobbler, search engine.Search,
|
||||||
|
mediaFileRepository domain.MediaFileRepository) *Router {
|
||||||
|
|
||||||
|
return &Router{Browser: browser, Cover: cover, ListGenerator: listGenerator, Playlists: playlists,
|
||||||
|
Ratings: ratings, Scrobbler: scrobbler, Search: search, MediaFileRepository: mediaFileRepository}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *Router) Routes() http.Handler {
|
||||||
r := chi.NewRouter()
|
r := chi.NewRouter()
|
||||||
|
|
||||||
r.Use(checkRequiredParameters)
|
r.Use(checkRequiredParameters)
|
||||||
|
@ -27,12 +48,12 @@ func Router() http.Handler {
|
||||||
}
|
}
|
||||||
|
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initSystemController()
|
c := initSystemController(api)
|
||||||
addEndpoint(r, "ping", c.Ping)
|
addEndpoint(r, "ping", c.Ping)
|
||||||
addEndpoint(r, "getLicense", c.GetLicense)
|
addEndpoint(r, "getLicense", c.GetLicense)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initBrowsingController()
|
c := initBrowsingController(api)
|
||||||
addEndpoint(r, "getMusicFolders", c.GetMusicFolders)
|
addEndpoint(r, "getMusicFolders", c.GetMusicFolders)
|
||||||
addEndpoint(r, "getMusicFolders", c.GetMusicFolders)
|
addEndpoint(r, "getMusicFolders", c.GetMusicFolders)
|
||||||
addEndpoint(r, "getIndexes", c.GetIndexes)
|
addEndpoint(r, "getIndexes", c.GetIndexes)
|
||||||
|
@ -44,7 +65,7 @@ func Router() http.Handler {
|
||||||
addEndpoint(reqParams, "getSong", c.GetSong)
|
addEndpoint(reqParams, "getSong", c.GetSong)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initAlbumListController()
|
c := initAlbumListController(api)
|
||||||
addEndpoint(r, "getAlbumList", c.GetAlbumList)
|
addEndpoint(r, "getAlbumList", c.GetAlbumList)
|
||||||
addEndpoint(r, "getAlbumList2", c.GetAlbumList2)
|
addEndpoint(r, "getAlbumList2", c.GetAlbumList2)
|
||||||
addEndpoint(r, "getStarred", c.GetStarred)
|
addEndpoint(r, "getStarred", c.GetStarred)
|
||||||
|
@ -53,14 +74,14 @@ func Router() http.Handler {
|
||||||
addEndpoint(r, "getRandomSongs", c.GetRandomSongs)
|
addEndpoint(r, "getRandomSongs", c.GetRandomSongs)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initMediaAnnotationController()
|
c := initMediaAnnotationController(api)
|
||||||
addEndpoint(r, "setRating", c.SetRating)
|
addEndpoint(r, "setRating", c.SetRating)
|
||||||
addEndpoint(r, "star", c.Star)
|
addEndpoint(r, "star", c.Star)
|
||||||
addEndpoint(r, "unstar", c.Unstar)
|
addEndpoint(r, "unstar", c.Unstar)
|
||||||
addEndpoint(r, "scrobble", c.Scrobble)
|
addEndpoint(r, "scrobble", c.Scrobble)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initPlaylistsController()
|
c := initPlaylistsController(api)
|
||||||
addEndpoint(r, "getPlaylists", c.GetPlaylists)
|
addEndpoint(r, "getPlaylists", c.GetPlaylists)
|
||||||
addEndpoint(r, "getPlaylist", c.GetPlaylist)
|
addEndpoint(r, "getPlaylist", c.GetPlaylist)
|
||||||
addEndpoint(r, "createPlaylist", c.CreatePlaylist)
|
addEndpoint(r, "createPlaylist", c.CreatePlaylist)
|
||||||
|
@ -68,21 +89,21 @@ func Router() http.Handler {
|
||||||
addEndpoint(r, "updatePlaylist", c.UpdatePlaylist)
|
addEndpoint(r, "updatePlaylist", c.UpdatePlaylist)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initSearchingController()
|
c := initSearchingController(api)
|
||||||
addEndpoint(r, "search2", c.Search2)
|
addEndpoint(r, "search2", c.Search2)
|
||||||
addEndpoint(r, "search3", c.Search3)
|
addEndpoint(r, "search3", c.Search3)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initUsersController()
|
c := initUsersController(api)
|
||||||
addEndpoint(r, "getUser", c.GetUser)
|
addEndpoint(r, "getUser", c.GetUser)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initMediaRetrievalController()
|
c := initMediaRetrievalController(api)
|
||||||
addEndpoint(r, "getAvatar", c.GetAvatar)
|
addEndpoint(r, "getAvatar", c.GetAvatar)
|
||||||
addEndpoint(r, "getCoverArt", c.GetCoverArt)
|
addEndpoint(r, "getCoverArt", c.GetCoverArt)
|
||||||
})
|
})
|
||||||
r.Group(func(r chi.Router) {
|
r.Group(func(r chi.Router) {
|
||||||
c := initStreamController()
|
c := initStreamController(api)
|
||||||
addEndpoint(r, "stream", c.Stream)
|
addEndpoint(r, "stream", c.Stream)
|
||||||
addEndpoint(r, "download", c.Download)
|
addEndpoint(r, "download", c.Download)
|
||||||
})
|
})
|
||||||
|
|
|
@ -6,11 +6,8 @@
|
||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/cloudsonic/sonic-server/engine"
|
|
||||||
"github.com/cloudsonic/sonic-server/itunesbridge"
|
"github.com/cloudsonic/sonic-server/itunesbridge"
|
||||||
"github.com/cloudsonic/sonic-server/persistence"
|
|
||||||
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
||||||
"github.com/cloudsonic/sonic-server/persistence/db_storm"
|
|
||||||
"github.com/deluan/gomate"
|
"github.com/deluan/gomate"
|
||||||
"github.com/deluan/gomate/ledis"
|
"github.com/deluan/gomate/ledis"
|
||||||
"github.com/google/wire"
|
"github.com/google/wire"
|
||||||
|
@ -18,85 +15,62 @@ import (
|
||||||
|
|
||||||
// Injectors from wire_injectors.go:
|
// Injectors from wire_injectors.go:
|
||||||
|
|
||||||
func initSystemController() *SystemController {
|
func initSystemController(router *Router) *SystemController {
|
||||||
systemController := NewSystemController()
|
systemController := NewSystemController()
|
||||||
return systemController
|
return systemController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initBrowsingController() *BrowsingController {
|
func initBrowsingController(router *Router) *BrowsingController {
|
||||||
propertyRepository := db_storm.NewPropertyRepository()
|
browser := router.Browser
|
||||||
mediaFolderRepository := persistence.NewMediaFolderRepository()
|
|
||||||
artistIndexRepository := db_storm.NewArtistIndexRepository()
|
|
||||||
artistRepository := db_storm.NewArtistRepository()
|
|
||||||
albumRepository := db_storm.NewAlbumRepository()
|
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
|
||||||
browser := engine.NewBrowser(propertyRepository, mediaFolderRepository, artistIndexRepository, artistRepository, albumRepository, mediaFileRepository)
|
|
||||||
browsingController := NewBrowsingController(browser)
|
browsingController := NewBrowsingController(browser)
|
||||||
return browsingController
|
return browsingController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initAlbumListController() *AlbumListController {
|
func initAlbumListController(router *Router) *AlbumListController {
|
||||||
albumRepository := db_storm.NewAlbumRepository()
|
listGenerator := router.ListGenerator
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
|
||||||
nowPlayingRepository := persistence.NewNowPlayingRepository()
|
|
||||||
listGenerator := engine.NewListGenerator(albumRepository, mediaFileRepository, nowPlayingRepository)
|
|
||||||
albumListController := NewAlbumListController(listGenerator)
|
albumListController := NewAlbumListController(listGenerator)
|
||||||
return albumListController
|
return albumListController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initMediaAnnotationController() *MediaAnnotationController {
|
func initMediaAnnotationController(router *Router) *MediaAnnotationController {
|
||||||
itunesControl := itunesbridge.NewItunesControl()
|
scrobbler := router.Scrobbler
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
ratings := router.Ratings
|
||||||
nowPlayingRepository := persistence.NewNowPlayingRepository()
|
|
||||||
scrobbler := engine.NewScrobbler(itunesControl, mediaFileRepository, nowPlayingRepository)
|
|
||||||
albumRepository := db_storm.NewAlbumRepository()
|
|
||||||
artistRepository := db_storm.NewArtistRepository()
|
|
||||||
ratings := engine.NewRatings(itunesControl, mediaFileRepository, albumRepository, artistRepository)
|
|
||||||
mediaAnnotationController := NewMediaAnnotationController(scrobbler, ratings)
|
mediaAnnotationController := NewMediaAnnotationController(scrobbler, ratings)
|
||||||
return mediaAnnotationController
|
return mediaAnnotationController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initPlaylistsController() *PlaylistsController {
|
func initPlaylistsController(router *Router) *PlaylistsController {
|
||||||
itunesControl := itunesbridge.NewItunesControl()
|
playlists := router.Playlists
|
||||||
playlistRepository := db_storm.NewPlaylistRepository()
|
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
|
||||||
playlists := engine.NewPlaylists(itunesControl, playlistRepository, mediaFileRepository)
|
|
||||||
playlistsController := NewPlaylistsController(playlists)
|
playlistsController := NewPlaylistsController(playlists)
|
||||||
return playlistsController
|
return playlistsController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initSearchingController() *SearchingController {
|
func initSearchingController(router *Router) *SearchingController {
|
||||||
artistRepository := db_storm.NewArtistRepository()
|
search := router.Search
|
||||||
albumRepository := db_storm.NewAlbumRepository()
|
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
|
||||||
db := newDB()
|
|
||||||
search := engine.NewSearch(artistRepository, albumRepository, mediaFileRepository, db)
|
|
||||||
searchingController := NewSearchingController(search)
|
searchingController := NewSearchingController(search)
|
||||||
return searchingController
|
return searchingController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initUsersController() *UsersController {
|
func initUsersController(router *Router) *UsersController {
|
||||||
usersController := NewUsersController()
|
usersController := NewUsersController()
|
||||||
return usersController
|
return usersController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initMediaRetrievalController() *MediaRetrievalController {
|
func initMediaRetrievalController(router *Router) *MediaRetrievalController {
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
cover := router.Cover
|
||||||
albumRepository := db_storm.NewAlbumRepository()
|
|
||||||
cover := engine.NewCover(mediaFileRepository, albumRepository)
|
|
||||||
mediaRetrievalController := NewMediaRetrievalController(cover)
|
mediaRetrievalController := NewMediaRetrievalController(cover)
|
||||||
return mediaRetrievalController
|
return mediaRetrievalController
|
||||||
}
|
}
|
||||||
|
|
||||||
func initStreamController() *StreamController {
|
func initStreamController(router *Router) *StreamController {
|
||||||
mediaFileRepository := db_storm.NewMediaFileRepository()
|
mediaFileRepository := router.MediaFileRepository
|
||||||
streamController := NewStreamController(mediaFileRepository)
|
streamController := NewStreamController(mediaFileRepository)
|
||||||
return streamController
|
return streamController
|
||||||
}
|
}
|
||||||
|
|
||||||
// wire_injectors.go:
|
// wire_injectors.go:
|
||||||
|
|
||||||
var allProviders = wire.NewSet(itunesbridge.NewItunesControl, db_storm.Set, engine.Set, NewSystemController,
|
var allProviders = wire.NewSet(itunesbridge.NewItunesControl, NewSystemController,
|
||||||
NewBrowsingController,
|
NewBrowsingController,
|
||||||
NewAlbumListController,
|
NewAlbumListController,
|
||||||
NewMediaAnnotationController,
|
NewMediaAnnotationController,
|
||||||
|
@ -105,7 +79,7 @@ var allProviders = wire.NewSet(itunesbridge.NewItunesControl, db_storm.Set, engi
|
||||||
NewUsersController,
|
NewUsersController,
|
||||||
NewMediaRetrievalController,
|
NewMediaRetrievalController,
|
||||||
NewStreamController,
|
NewStreamController,
|
||||||
newDB,
|
newDB, wire.FieldsOf(new(*Router), "Browser", "Cover", "ListGenerator", "Playlists", "Ratings", "Scrobbler", "Search", "MediaFileRepository"),
|
||||||
)
|
)
|
||||||
|
|
||||||
func newDB() gomate.DB {
|
func newDB() gomate.DB {
|
||||||
|
|
|
@ -3,10 +3,8 @@
|
||||||
package api
|
package api
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/cloudsonic/sonic-server/engine"
|
|
||||||
"github.com/cloudsonic/sonic-server/itunesbridge"
|
"github.com/cloudsonic/sonic-server/itunesbridge"
|
||||||
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
||||||
"github.com/cloudsonic/sonic-server/persistence/db_storm"
|
|
||||||
"github.com/deluan/gomate"
|
"github.com/deluan/gomate"
|
||||||
"github.com/deluan/gomate/ledis"
|
"github.com/deluan/gomate/ledis"
|
||||||
"github.com/google/wire"
|
"github.com/google/wire"
|
||||||
|
@ -14,9 +12,6 @@ import (
|
||||||
|
|
||||||
var allProviders = wire.NewSet(
|
var allProviders = wire.NewSet(
|
||||||
itunesbridge.NewItunesControl,
|
itunesbridge.NewItunesControl,
|
||||||
//db_ledis.Set,
|
|
||||||
db_storm.Set,
|
|
||||||
engine.Set,
|
|
||||||
NewSystemController,
|
NewSystemController,
|
||||||
NewBrowsingController,
|
NewBrowsingController,
|
||||||
NewAlbumListController,
|
NewAlbumListController,
|
||||||
|
@ -27,41 +22,42 @@ var allProviders = wire.NewSet(
|
||||||
NewMediaRetrievalController,
|
NewMediaRetrievalController,
|
||||||
NewStreamController,
|
NewStreamController,
|
||||||
newDB,
|
newDB,
|
||||||
|
wire.FieldsOf(new(*Router), "Browser", "Cover", "ListGenerator", "Playlists", "Ratings", "Scrobbler", "Search", "MediaFileRepository"),
|
||||||
)
|
)
|
||||||
|
|
||||||
func initSystemController() *SystemController {
|
func initSystemController(router *Router) *SystemController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initBrowsingController() *BrowsingController {
|
func initBrowsingController(router *Router) *BrowsingController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initAlbumListController() *AlbumListController {
|
func initAlbumListController(router *Router) *AlbumListController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initMediaAnnotationController() *MediaAnnotationController {
|
func initMediaAnnotationController(router *Router) *MediaAnnotationController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initPlaylistsController() *PlaylistsController {
|
func initPlaylistsController(router *Router) *PlaylistsController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initSearchingController() *SearchingController {
|
func initSearchingController(router *Router) *SearchingController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initUsersController() *UsersController {
|
func initUsersController(router *Router) *UsersController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initMediaRetrievalController() *MediaRetrievalController {
|
func initMediaRetrievalController(router *Router) *MediaRetrievalController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
func initStreamController() *StreamController {
|
func initStreamController(router *Router) *StreamController {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
3
main.go
3
main.go
|
@ -3,7 +3,6 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/cloudsonic/sonic-server/api"
|
|
||||||
"github.com/cloudsonic/sonic-server/conf"
|
"github.com/cloudsonic/sonic-server/conf"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,6 +13,6 @@ func main() {
|
||||||
|
|
||||||
a := App{}
|
a := App{}
|
||||||
a.Initialize()
|
a.Initialize()
|
||||||
a.MountRouter("/rest/", api.Router())
|
a.MountRouter("/rest/", initRouter().Routes())
|
||||||
a.Run(":" + conf.Sonic.Port)
|
a.Run(":" + conf.Sonic.Port)
|
||||||
}
|
}
|
||||||
|
|
26
wire_gen.go
26
wire_gen.go
|
@ -6,8 +6,10 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/cloudsonic/sonic-server/api"
|
||||||
"github.com/cloudsonic/sonic-server/engine"
|
"github.com/cloudsonic/sonic-server/engine"
|
||||||
"github.com/cloudsonic/sonic-server/itunesbridge"
|
"github.com/cloudsonic/sonic-server/itunesbridge"
|
||||||
|
"github.com/cloudsonic/sonic-server/persistence"
|
||||||
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
||||||
"github.com/cloudsonic/sonic-server/persistence/db_storm"
|
"github.com/cloudsonic/sonic-server/persistence/db_storm"
|
||||||
"github.com/cloudsonic/sonic-server/scanner"
|
"github.com/cloudsonic/sonic-server/scanner"
|
||||||
|
@ -18,6 +20,28 @@ import (
|
||||||
|
|
||||||
// Injectors from wire_injectors.go:
|
// Injectors from wire_injectors.go:
|
||||||
|
|
||||||
|
func initRouter() *api.Router {
|
||||||
|
propertyRepository := db_storm.NewPropertyRepository()
|
||||||
|
mediaFolderRepository := persistence.NewMediaFolderRepository()
|
||||||
|
artistIndexRepository := db_storm.NewArtistIndexRepository()
|
||||||
|
artistRepository := db_storm.NewArtistRepository()
|
||||||
|
albumRepository := db_storm.NewAlbumRepository()
|
||||||
|
mediaFileRepository := db_storm.NewMediaFileRepository()
|
||||||
|
browser := engine.NewBrowser(propertyRepository, mediaFolderRepository, artistIndexRepository, artistRepository, albumRepository, mediaFileRepository)
|
||||||
|
cover := engine.NewCover(mediaFileRepository, albumRepository)
|
||||||
|
nowPlayingRepository := persistence.NewNowPlayingRepository()
|
||||||
|
listGenerator := engine.NewListGenerator(albumRepository, mediaFileRepository, nowPlayingRepository)
|
||||||
|
itunesControl := itunesbridge.NewItunesControl()
|
||||||
|
playlistRepository := db_storm.NewPlaylistRepository()
|
||||||
|
playlists := engine.NewPlaylists(itunesControl, playlistRepository, mediaFileRepository)
|
||||||
|
ratings := engine.NewRatings(itunesControl, mediaFileRepository, albumRepository, artistRepository)
|
||||||
|
scrobbler := engine.NewScrobbler(itunesControl, mediaFileRepository, nowPlayingRepository)
|
||||||
|
db := newDB()
|
||||||
|
search := engine.NewSearch(artistRepository, albumRepository, mediaFileRepository, db)
|
||||||
|
router := api.NewRouter(browser, cover, listGenerator, playlists, ratings, scrobbler, search, mediaFileRepository)
|
||||||
|
return router
|
||||||
|
}
|
||||||
|
|
||||||
func initImporter(musicFolder string) *scanner.Importer {
|
func initImporter(musicFolder string) *scanner.Importer {
|
||||||
checkSumRepository := db_storm.NewCheckSumRepository()
|
checkSumRepository := db_storm.NewCheckSumRepository()
|
||||||
itunesScanner := scanner.NewItunesScanner(checkSumRepository)
|
itunesScanner := scanner.NewItunesScanner(checkSumRepository)
|
||||||
|
@ -35,7 +59,7 @@ func initImporter(musicFolder string) *scanner.Importer {
|
||||||
|
|
||||||
// wire_injectors.go:
|
// wire_injectors.go:
|
||||||
|
|
||||||
var allProviders = wire.NewSet(itunesbridge.NewItunesControl, db_storm.Set, engine.Set, scanner.Set, newDB)
|
var allProviders = wire.NewSet(itunesbridge.NewItunesControl, db_storm.Set, engine.Set, scanner.Set, newDB, api.NewRouter)
|
||||||
|
|
||||||
func newDB() gomate.DB {
|
func newDB() gomate.DB {
|
||||||
return ledis.NewEmbeddedDB(db_ledis.Db())
|
return ledis.NewEmbeddedDB(db_ledis.Db())
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"github.com/cloudsonic/sonic-server/api"
|
||||||
"github.com/cloudsonic/sonic-server/engine"
|
"github.com/cloudsonic/sonic-server/engine"
|
||||||
"github.com/cloudsonic/sonic-server/itunesbridge"
|
"github.com/cloudsonic/sonic-server/itunesbridge"
|
||||||
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
"github.com/cloudsonic/sonic-server/persistence/db_ledis"
|
||||||
|
@ -20,8 +21,13 @@ var allProviders = wire.NewSet(
|
||||||
engine.Set,
|
engine.Set,
|
||||||
scanner.Set,
|
scanner.Set,
|
||||||
newDB,
|
newDB,
|
||||||
|
api.NewRouter,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func initRouter() *api.Router {
|
||||||
|
panic(wire.Build(allProviders))
|
||||||
|
}
|
||||||
|
|
||||||
func initImporter(musicFolder string) *scanner.Importer {
|
func initImporter(musicFolder string) *scanner.Importer {
|
||||||
panic(wire.Build(allProviders))
|
panic(wire.Build(allProviders))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue