routes.go 976 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Copyright 2018 Frédéric Guillot. All rights reserved.
  2. // Use of this source code is governed by the Apache 2.0
  3. // license that can be found in the LICENSE file.
  4. package daemon // import "miniflux.app/daemon"
  5. import (
  6. "miniflux.app/api"
  7. "miniflux.app/config"
  8. "miniflux.app/fever"
  9. "miniflux.app/middleware"
  10. "miniflux.app/reader/feed"
  11. "miniflux.app/scheduler"
  12. "miniflux.app/storage"
  13. "miniflux.app/ui"
  14. "github.com/gorilla/mux"
  15. )
  16. func routes(cfg *config.Config, store *storage.Storage, feedHandler *feed.Handler, pool *scheduler.WorkerPool) *mux.Router {
  17. router := mux.NewRouter()
  18. middleware := middleware.New(cfg, store, router)
  19. if cfg.BasePath() != "" {
  20. router = router.PathPrefix(cfg.BasePath()).Subrouter()
  21. }
  22. router.Use(middleware.ClientIP)
  23. router.Use(middleware.HeaderConfig)
  24. router.Use(middleware.Logging)
  25. fever.Serve(router, cfg, store)
  26. api.Serve(router, store, feedHandler)
  27. ui.Serve(router, cfg, store, pool, feedHandler)
  28. return router
  29. }