From 48b465f2fb3318cb47de9e1b6afa0a3d73b12ac7 Mon Sep 17 00:00:00 2001 From: Deluan Date: Sat, 11 Jan 2020 13:21:43 -0500 Subject: [PATCH] Simplify API routes mounting --- api/api.go | 12 ++++++++++-- main.go | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/api/api.go b/api/api.go index 94403032..9ae4876a 100644 --- a/api/api.go +++ b/api/api.go @@ -26,17 +26,25 @@ type Router struct { Scrobbler engine.Scrobbler Search engine.Search MediaFileRepository domain.MediaFileRepository + + mux http.Handler } 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, + r := &Router{Browser: browser, Cover: cover, ListGenerator: listGenerator, Playlists: playlists, Ratings: ratings, Scrobbler: scrobbler, Search: search, MediaFileRepository: mediaFileRepository} + r.mux = r.routes() + return r } -func (api *Router) Routes() http.Handler { +func (api *Router) ServeHTTP(w http.ResponseWriter, r *http.Request) { + api.mux.ServeHTTP(w, r) +} + +func (api *Router) routes() http.Handler { r := chi.NewRouter() r.Use(checkRequiredParameters) diff --git a/main.go b/main.go index 3ab9510e..c1a98162 100644 --- a/main.go +++ b/main.go @@ -12,6 +12,6 @@ func main() { fmt.Printf("\nCloudSonic Server v%s\n\n", "0.2") a := createApp(conf.Sonic.MusicFolder) - a.MountRouter("/rest/", initRouter().Routes()) + a.MountRouter("/rest/", initRouter()) a.Run(":" + conf.Sonic.Port) }