mirror of
https://github.com/navidrome/navidrome.git
synced 2025-04-18 04:47:42 +03:00
100 lines
4.5 KiB
Go
100 lines
4.5 KiB
Go
// Code generated by Wire. DO NOT EDIT.
|
|
|
|
//go:generate wire
|
|
//+build !wireinject
|
|
|
|
package main
|
|
|
|
import (
|
|
"github.com/cloudsonic/sonic-server/api"
|
|
"github.com/cloudsonic/sonic-server/engine"
|
|
"github.com/cloudsonic/sonic-server/itunesbridge"
|
|
"github.com/cloudsonic/sonic-server/model"
|
|
"github.com/cloudsonic/sonic-server/persistence"
|
|
"github.com/cloudsonic/sonic-server/scanner_legacy"
|
|
"github.com/cloudsonic/sonic-server/server"
|
|
"github.com/google/wire"
|
|
)
|
|
|
|
// Injectors from wire_injectors.go:
|
|
|
|
func CreateApp(musicFolder string) *server.Server {
|
|
repositories := createPersistenceProvider()
|
|
checksumRepository := repositories.CheckSumRepository
|
|
itunesScanner := scanner_legacy.NewItunesScanner(checksumRepository)
|
|
mediaFileRepository := repositories.MediaFileRepository
|
|
albumRepository := repositories.AlbumRepository
|
|
artistRepository := repositories.ArtistRepository
|
|
artistIndexRepository := repositories.ArtistIndexRepository
|
|
playlistRepository := repositories.PlaylistRepository
|
|
propertyRepository := repositories.PropertyRepository
|
|
importer := scanner_legacy.NewImporter(musicFolder, itunesScanner, mediaFileRepository, albumRepository, artistRepository, artistIndexRepository, playlistRepository, propertyRepository)
|
|
serverServer := server.New(importer)
|
|
return serverServer
|
|
}
|
|
|
|
func CreateSubsonicAPIRouter() *api.Router {
|
|
repositories := createPersistenceProvider()
|
|
propertyRepository := repositories.PropertyRepository
|
|
mediaFolderRepository := repositories.MediaFolderRepository
|
|
artistIndexRepository := repositories.ArtistIndexRepository
|
|
artistRepository := repositories.ArtistRepository
|
|
albumRepository := repositories.AlbumRepository
|
|
mediaFileRepository := repositories.MediaFileRepository
|
|
browser := engine.NewBrowser(propertyRepository, mediaFolderRepository, artistIndexRepository, artistRepository, albumRepository, mediaFileRepository)
|
|
cover := engine.NewCover(mediaFileRepository, albumRepository)
|
|
nowPlayingRepository := repositories.NowPlayingRepository
|
|
listGenerator := engine.NewListGenerator(albumRepository, mediaFileRepository, nowPlayingRepository)
|
|
itunesControl := itunesbridge.NewItunesControl()
|
|
playlistRepository := repositories.PlaylistRepository
|
|
playlists := engine.NewPlaylists(itunesControl, playlistRepository, mediaFileRepository)
|
|
ratings := engine.NewRatings(itunesControl, mediaFileRepository, albumRepository, artistRepository)
|
|
scrobbler := engine.NewScrobbler(itunesControl, mediaFileRepository, nowPlayingRepository)
|
|
search := engine.NewSearch(artistRepository, albumRepository, mediaFileRepository)
|
|
router := api.NewRouter(browser, cover, listGenerator, playlists, ratings, scrobbler, search)
|
|
return router
|
|
}
|
|
|
|
func createPersistenceProvider() *Repositories {
|
|
albumRepository := persistence.NewAlbumRepository()
|
|
artistRepository := persistence.NewArtistRepository()
|
|
checksumRepository := persistence.NewCheckSumRepository()
|
|
artistIndexRepository := persistence.NewArtistIndexRepository()
|
|
mediaFileRepository := persistence.NewMediaFileRepository()
|
|
mediaFolderRepository := persistence.NewMediaFolderRepository()
|
|
nowPlayingRepository := persistence.NewNowPlayingRepository()
|
|
playlistRepository := persistence.NewPlaylistRepository()
|
|
propertyRepository := persistence.NewPropertyRepository()
|
|
repositories := &Repositories{
|
|
AlbumRepository: albumRepository,
|
|
ArtistRepository: artistRepository,
|
|
CheckSumRepository: checksumRepository,
|
|
ArtistIndexRepository: artistIndexRepository,
|
|
MediaFileRepository: mediaFileRepository,
|
|
MediaFolderRepository: mediaFolderRepository,
|
|
NowPlayingRepository: nowPlayingRepository,
|
|
PlaylistRepository: playlistRepository,
|
|
PropertyRepository: propertyRepository,
|
|
}
|
|
return repositories
|
|
}
|
|
|
|
// wire_injectors.go:
|
|
|
|
type Repositories struct {
|
|
AlbumRepository model.AlbumRepository
|
|
ArtistRepository model.ArtistRepository
|
|
CheckSumRepository model.ChecksumRepository
|
|
ArtistIndexRepository model.ArtistIndexRepository
|
|
MediaFileRepository model.MediaFileRepository
|
|
MediaFolderRepository model.MediaFolderRepository
|
|
NowPlayingRepository model.NowPlayingRepository
|
|
PlaylistRepository model.PlaylistRepository
|
|
PropertyRepository model.PropertyRepository
|
|
}
|
|
|
|
var allProviders = wire.NewSet(itunesbridge.NewItunesControl, engine.Set, scanner_legacy.Set, api.NewRouter, wire.FieldsOf(new(*Repositories), "AlbumRepository", "ArtistRepository", "CheckSumRepository",
|
|
"ArtistIndexRepository", "MediaFileRepository", "MediaFolderRepository", "NowPlayingRepository",
|
|
"PlaylistRepository", "PropertyRepository"), createPersistenceProvider,
|
|
)
|