de-duplicate routing setup
1 file changed, 22 insertions(+), 32 deletions(-)
changed files
M routes/handler.go → routes/handler.go
@@ -105,7 +105,7 @@ } } }() - mux.NotFoundHandler = func(w http.ResponseWriter, r *http.Request) { + mux.NotFoundHandler = func(w http.ResponseWriter, _ *http.Request) { d.Write404(w) }@@ -116,37 +116,27 @@ mux.NewGroup("/static/"). UsingContext(). Handler("GET", "/*", http.FileServerFS(staticFiles)) - mux.GET("/:name/tree/:ref/*rest", d.RepoTree) - mux.GET("/:name/blob/:ref/*rest", d.FileContent) - mux.GET("/:name/tree/:ref/", d.RepoTree) - mux.GET("/:name/blob/:ref/", d.FileContent) - mux.GET("/:name/log/:ref", d.Log) - mux.GET("/:name/archive/:file", d.Archive) - mux.GET("/:name/commit/:ref", d.Diff) - mux.GET("/:name/commit/:ref/*file", d.FileDiff) - mux.GET("/:name/refs/", d.Refs) - mux.GET("/:name", d.Multiplex) - mux.POST("/:name", d.Multiplex) - mux.GET("/:name/", d.Multiplex) - mux.POST("/:name/", d.Multiplex) - mux.GET("/:name/*rest", d.Multiplex) - mux.POST("/:name/*rest", d.Multiplex) - - mux.GET("/:category/:name/tree/:ref/*rest", d.RepoTree) - mux.GET("/:category/:name/blob/:ref/*rest", d.FileContent) - mux.GET("/:category/:name/tree/:ref/", d.RepoTree) - mux.GET("/:category/:name/blob/:ref/", d.FileContent) - mux.GET("/:category/:name/log/:ref", d.Log) - mux.GET("/:category/:name/archive/:file", d.Archive) - mux.GET("/:category/:name/commit/:ref", d.Diff) - mux.GET("/:category/:name/commit/:ref/*file", d.FileDiff) - mux.GET("/:category/:name/refs/", d.Refs) - mux.GET("/:category/:name", d.Multiplex) - mux.POST("/:category/:name", d.Multiplex) - mux.GET("/:category/:name/", d.Multiplex) - mux.POST("/:category/:name/", d.Multiplex) - mux.GET("/:category/:name/*rest", d.Multiplex) - mux.POST("/:category/:name/*rest", d.Multiplex) + d.mountRepoPaths(mux.NewGroup("/:name")) + d.mountRepoPaths(mux.NewGroup("/:category/:name")) return mux } + +func (d deps) mountRepoPaths(group *httptreemux.Group) { + group.GET("/tree/:ref/*rest", d.RepoTree) + group.GET("/blob/:ref/*rest", d.FileContent) + group.GET("/tree/:ref", d.RepoTree) + group.GET("/tree/:ref/", d.RepoTree) + group.GET("/blob/:ref/", d.FileContent) + group.GET("/log/:ref", d.Log) + group.GET("/archive/:file", d.Archive) + group.GET("/commit/:ref", d.Diff) + group.GET("/commit/:ref/*file", d.FileDiff) + group.GET("/refs/", d.Refs) + group.GET("", d.Multiplex) + group.POST("", d.Multiplex) + group.GET("/", d.Multiplex) + group.POST("/", d.Multiplex) + group.GET("/*rest", d.Multiplex) + group.POST("/*rest", d.Multiplex) +}