diff options
author | wxiaoguang <wxiaoguang@gmail.com> | 2024-12-28 11:31:46 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-28 03:31:46 +0000 |
commit | e435b1900a00dd98d65aa1f7668fe41e4df83044 (patch) | |
tree | dc8156c59b3b92589f79a29610935ef9d12516a7 /routers/api | |
parent | 254314be5f355ab5dd5533fde6e9d4f62f1620a4 (diff) | |
download | gitea-e435b1900a00dd98d65aa1f7668fe41e4df83044.tar.gz gitea-e435b1900a00dd98d65aa1f7668fe41e4df83044.zip |
Refactor arch route handlers (#32993)
Diffstat (limited to 'routers/api')
-rw-r--r-- | routers/api/packages/api.go | 39 |
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() { |