package v1 import ( "github.com/go-chi/chi" "github.com/porter-dev/porter/api/server/shared" "github.com/porter-dev/porter/api/server/shared/config" "github.com/porter-dev/porter/api/server/shared/router" "github.com/porter-dev/porter/api/types" ) // swagger:parameters getNamespace deleteNamespace createRelease createStack listStacks type namespacePathParams struct { // The project id // in: path // required: true // minimum: 1 ProjectID uint `json:"project_id"` // The cluster id // in: path // required: true // minimum: 1 ClusterID uint `json:"cluster_id"` // The namespace name // in: path // required: true Namespace string `json:"namespace"` } func NewV1NamespaceScopedRegisterer(children ...*router.Registerer) *router.Registerer { return &router.Registerer{ GetRoutes: GetV1NamespaceScopedRoutes, Children: children, } } func GetV1NamespaceScopedRoutes( r chi.Router, config *config.Config, basePath *types.Path, factory shared.APIEndpointFactory, children ...*router.Registerer, ) []*router.Route { routes, projPath := getV1NamespaceRoutes(r, config, basePath, factory) if len(children) > 0 { r.Route(projPath.RelativePath, func(r chi.Router) { for _, child := range children { childRoutes := child.GetRoutes(r, config, basePath, factory, child.Children...) routes = append(routes, childRoutes...) } }) } return routes } func getV1NamespaceRoutes( r chi.Router, config *config.Config, basePath *types.Path, factory shared.APIEndpointFactory, ) ([]*router.Route, *types.Path) { relPath := "/namespaces/{namespace}" newPath := &types.Path{ Parent: basePath, RelativePath: relPath, } var routes []*router.Route return routes, newPath }