diff --git a/cmd/proxy/actions/app_proxy.go b/cmd/proxy/actions/app_proxy.go index b898971c..b6cf25cb 100644 --- a/cmd/proxy/actions/app_proxy.go +++ b/cmd/proxy/actions/app_proxy.go @@ -65,5 +65,7 @@ func addProxyRoutes( handlerOpts := &download.HandlerOpts{Protocol: dp, Logger: l} download.RegisterHandlers(r, handlerOpts) + storage.RegisterHandlers(r, s) + return nil } diff --git a/pkg/download/handler.go b/pkg/download/handler.go index 569d22f7..1a474fa2 100644 --- a/pkg/download/handler.go +++ b/pkg/download/handler.go @@ -50,5 +50,4 @@ func RegisterHandlers(r *mux.Router, opts *HandlerOpts) { r.Handle(PathVersionInfo, LogEntryHandler(InfoHandler, opts)).Methods(http.MethodGet) r.Handle(PathVersionModule, LogEntryHandler(ModuleHandler, opts)).Methods(http.MethodGet) r.Handle(PathVersionZip, LogEntryHandler(ZipHandler, opts)).Methods(http.MethodGet) - r.Handle(PathCatalog, LogEntryHandler(CatalogHandler, opts)).Methods(http.MethodGet) } diff --git a/pkg/download/catalog.go b/pkg/storage/handler.go similarity index 75% rename from pkg/download/catalog.go rename to pkg/storage/handler.go index 35a14d0e..cbb2d28f 100644 --- a/pkg/download/catalog.go +++ b/pkg/storage/handler.go @@ -1,4 +1,4 @@ -package download +package storage import ( "encoding/json" @@ -11,8 +11,6 @@ import ( "github.com/gorilla/mux" ) -// PathCatalog URL. -const PathCatalog = "/catalog" const defaultPageSize = 1000 type catalogRes struct { @@ -20,10 +18,17 @@ type catalogRes struct { NextPageToken string `json:"next"` } +// RegisterHandlers is a convenience method that registers +// all the storage routes. +func RegisterHandlers(r *mux.Router, s Backend) { + r.Handle("/catalog", CatalogHandler(s)).Methods(http.MethodGet) +} + // CatalogHandler implements GET baseURL/catalog -func CatalogHandler(dp Protocol, lggr log.Entry) http.Handler { +func CatalogHandler(s Backend) http.Handler { const op errors.Op = "download.CatalogHandler" f := func(w http.ResponseWriter, r *http.Request) { + lggr := log.EntryFromContext(r.Context()) vars := mux.Vars(r) token := vars["token"] pageSize, err := getLimitFromParam(vars["pagesize"]) @@ -33,8 +38,7 @@ func CatalogHandler(dp Protocol, lggr log.Entry) http.Handler { return } - modulesAndVersions, newToken, err := dp.Catalog(r.Context(), token, pageSize) - + modulesAndVersions, newToken, err := s.Catalog(r.Context(), token, pageSize) if err != nil { if errors.Kind(err) != errors.KindNotImplemented { lggr.SystemErr(errors.E(op, err))