aboutsummaryrefslogtreecommitdiffstats
path: root/routers/api
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2024-12-28 11:31:46 +0800
committerGitHub <noreply@github.com>2024-12-28 03:31:46 +0000
commite435b1900a00dd98d65aa1f7668fe41e4df83044 (patch)
treedc8156c59b3b92589f79a29610935ef9d12516a7 /routers/api
parent254314be5f355ab5dd5533fde6e9d4f62f1620a4 (diff)
downloadgitea-e435b1900a00dd98d65aa1f7668fe41e4df83044.tar.gz
gitea-e435b1900a00dd98d65aa1f7668fe41e4df83044.zip
Refactor arch route handlers (#32993)
Diffstat (limited to 'routers/api')
-rw-r--r--routers/api/packages/api.go39
1 files changed, 4 insertions, 35 deletions
diff --git a/routers/api/packages/api.go b/routers/api/packages/api.go
index b50fbd638e..8c06836ff8 100644
--- a/routers/api/packages/api.go
+++ b/routers/api/packages/api.go
@@ -37,8 +37,6 @@ import (
"code.gitea.io/gitea/routers/api/packages/vagrant"
"code.gitea.io/gitea/services/auth"
"code.gitea.io/gitea/services/context"
-
- "github.com/go-chi/chi/v5"
)
func reqPackageAccess(accessMode perm.AccessMode) func(ctx *context.Context) {
@@ -140,39 +138,10 @@ func CommonRoutes() *web.Router {
}, reqPackageAccess(perm.AccessModeRead))
r.Group("/arch", func() {
r.Methods("HEAD,GET", "/repository.key", arch.GetRepositoryKey)
-
- reqPutRepository := web.NewPathProcessor("PUT", "/<repository:*>")
- reqGetRepoArchFile := web.NewPathProcessor("HEAD,GET", "/<repository:*>/<architecture>/<filename>")
- reqDeleteRepoNameVerArch := web.NewPathProcessor("DELETE", "/<repository:*>/<name>/<version>/<architecture>")
-
- r.Any("*", func(ctx *context.Context) {
- chiCtx := chi.RouteContext(ctx.Req.Context())
- path := ctx.PathParam("*")
-
- if reqPutRepository.ProcessRequestPath(chiCtx, path) {
- reqPackageAccess(perm.AccessModeWrite)(ctx)
- if ctx.Written() {
- return
- }
- arch.UploadPackageFile(ctx)
- return
- }
-
- if reqGetRepoArchFile.ProcessRequestPath(chiCtx, path) {
- arch.GetPackageOrRepositoryFile(ctx)
- return
- }
-
- if reqDeleteRepoNameVerArch.ProcessRequestPath(chiCtx, path) {
- reqPackageAccess(perm.AccessModeWrite)(ctx)
- if ctx.Written() {
- return
- }
- arch.DeletePackageVersion(ctx)
- return
- }
-
- ctx.Status(http.StatusNotFound)
+ r.PathGroup("*", func(g *web.RouterPathGroup) {
+ g.MatchPath("PUT", "/<repository:*>", reqPackageAccess(perm.AccessModeWrite), arch.UploadPackageFile)
+ g.MatchPath("HEAD,GET", "/<repository:*>/<architecture>/<filename>", arch.GetPackageOrRepositoryFile)
+ g.MatchPath("DELETE", "/<repository:*>/<name>/<version>/<architecture>", reqPackageAccess(perm.AccessModeWrite), arch.DeletePackageVersion)
})
}, reqPackageAccess(perm.AccessModeRead))
r.Group("/cargo", func() {