github.com/kyleu/dbaudit@v0.0.2-0.20240321155047-ff2f2c940496/app/controller/routes/routes.go (about) 1 // Package routes - Content managed by Project Forge, see [projectforge.md] for details. 2 package routes 3 4 import ( 5 "net/http" 6 7 "github.com/gorilla/mux" 8 9 "github.com/kyleu/dbaudit/app" 10 "github.com/kyleu/dbaudit/app/controller" 11 "github.com/kyleu/dbaudit/app/controller/clib" 12 "github.com/kyleu/dbaudit/app/controller/cutil" 13 "github.com/kyleu/dbaudit/app/util" 14 ) 15 16 func makeRoute(x *mux.Router, method string, path string, f http.HandlerFunc) { 17 cutil.AddRoute(method, path) 18 x.HandleFunc(path, f).Methods(method) 19 } 20 21 //nolint:revive 22 func AppRoutes(as *app.State, logger util.Logger) (http.Handler, error) { 23 r := mux.NewRouter() 24 25 makeRoute(r, http.MethodGet, "/", controller.Home) 26 makeRoute(r, http.MethodGet, "/healthcheck", clib.Healthcheck) 27 makeRoute(r, http.MethodGet, "/about", clib.About) 28 29 makeRoute(r, http.MethodGet, cutil.DefaultProfilePath, clib.Profile) 30 makeRoute(r, http.MethodPost, cutil.DefaultProfilePath, clib.ProfileSave) 31 makeRoute(r, http.MethodGet, "/auth/{key}", clib.AuthDetail) 32 makeRoute(r, http.MethodGet, "/auth/callback/{key}", clib.AuthCallback) 33 makeRoute(r, http.MethodGet, "/auth/logout/{key}", clib.AuthLogout) 34 makeRoute(r, http.MethodGet, cutil.DefaultSearchPath, clib.Search) 35 36 themeRoutes(r) 37 generatedRoutes(r) 38 39 // $PF_SECTION_START(routes)$ 40 parseRoutes(r) 41 makeRoute(r, http.MethodGet, "/statement/{id}/run", controller.StatementRun) 42 // $PF_SECTION_END(routes)$ 43 44 makeRoute(r, http.MethodGet, "/docs", clib.Docs) 45 makeRoute(r, http.MethodGet, "/docs/{path:.*}", clib.Docs) 46 47 adminRoutes(r) 48 49 makeRoute(r, http.MethodGet, "/favicon.ico", clib.Favicon) 50 makeRoute(r, http.MethodGet, "/robots.txt", clib.RobotsTxt) 51 makeRoute(r, http.MethodGet, "/assets/{path:.*}", clib.Static) 52 53 makeRoute(r, http.MethodOptions, "/", controller.Options) 54 55 return cutil.WireRouter(r, controller.NotFoundAction, logger) 56 }