Explorar el Código

add capabilities endpoint

Alexander Belanger hace 4 años
padre
commit
a6aee8631a
Se han modificado 2 ficheros con 49 adiciones y 0 borrados
  1. 25 0
      api/server/handlers/capabilities/get.go
  2. 24 0
      api/server/router/base.go

+ 25 - 0
api/server/handlers/capabilities/get.go

@@ -0,0 +1,25 @@
+package capabilities
+
+import (
+	"net/http"
+
+	"github.com/porter-dev/porter/api/server/handlers"
+	"github.com/porter-dev/porter/api/server/shared"
+)
+
+type CapabilitiesGetHandler struct {
+	handlers.PorterHandlerWriter
+}
+
+func NewCapabilitiesGetHandler(
+	config *shared.Config,
+	writer shared.ResultWriter,
+) *CapabilitiesGetHandler {
+	return &CapabilitiesGetHandler{
+		PorterHandlerWriter: handlers.NewDefaultPorterHandler(config, nil, writer),
+	}
+}
+
+func (v *CapabilitiesGetHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
+	v.WriteResult(w, v.Config().Capabilities)
+}

+ 24 - 0
api/server/router/base.go

@@ -2,6 +2,7 @@ package router
 
 import (
 	"github.com/go-chi/chi"
+	"github.com/porter-dev/porter/api/server/handlers/capabilities"
 	"github.com/porter-dev/porter/api/server/handlers/user"
 	"github.com/porter-dev/porter/api/server/shared"
 	"github.com/porter-dev/porter/api/types"
@@ -23,6 +24,29 @@ func GetBaseRoutes(
 ) []*Route {
 	routes := make([]*Route, 0)
 
+	// GET /api/capabilities -> user.NewUserCreateHandler
+	getCapabilitiesEndpoint := factory.NewAPIEndpoint(
+		&types.APIRequestMetadata{
+			Verb:   types.APIVerbGet,
+			Method: types.HTTPVerbGet,
+			Path: &types.Path{
+				Parent:       basePath,
+				RelativePath: "/capabilities",
+			},
+		},
+	)
+
+	getCapabilitiesHandler := capabilities.NewCapabilitiesGetHandler(
+		config,
+		factory.GetResultWriter(),
+	)
+
+	routes = append(routes, &Route{
+		Endpoint: getCapabilitiesEndpoint,
+		Handler:  getCapabilitiesHandler,
+		Router:   r,
+	})
+
 	// POST /api/users -> user.NewUserCreateHandler
 	createUserEndpoint := factory.NewAPIEndpoint(
 		&types.APIRequestMetadata{