summaryrefslogtreecommitdiffstats
path: root/lib/xdsserver/apiv1.go
diff options
context:
space:
mode:
Diffstat (limited to 'lib/xdsserver/apiv1.go')
-rw-r--r--lib/xdsserver/apiv1.go47
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/xdsserver/apiv1.go b/lib/xdsserver/apiv1.go
new file mode 100644
index 0000000..1f6df9e
--- /dev/null
+++ b/lib/xdsserver/apiv1.go
@@ -0,0 +1,47 @@
+package xdsserver
+
+import (
+ "github.com/gin-gonic/gin"
+)
+
+// APIService .
+type APIService struct {
+ *Context
+ apiRouter *gin.RouterGroup
+}
+
+// NewAPIV1 creates a new instance of API service
+func NewAPIV1(ctx *Context) *APIService {
+ s := &APIService{
+ Context: ctx,
+ apiRouter: ctx.WWWServer.router.Group("/api/v1"),
+ }
+
+ s.apiRouter.GET("/version", s.getVersion)
+
+ s.apiRouter.GET("/config", s.getConfig)
+ s.apiRouter.POST("/config", s.setConfig)
+
+ s.apiRouter.GET("/folders", s.getFolders)
+ s.apiRouter.GET("/folders/:id", s.getFolder)
+ s.apiRouter.PUT("/folders/:id", s.updateFolder)
+ s.apiRouter.POST("/folders", s.addFolder)
+ s.apiRouter.POST("/folders/sync/:id", s.syncFolder)
+ s.apiRouter.DELETE("/folders/:id", s.delFolder)
+
+ s.apiRouter.GET("/sdks", s.getSdks)
+ s.apiRouter.GET("/sdks/:id", s.getSdk)
+
+ s.apiRouter.POST("/make", s.buildMake)
+ s.apiRouter.POST("/make/:id", s.buildMake)
+
+ s.apiRouter.POST("/exec", s.execCmd)
+ s.apiRouter.POST("/exec/:id", s.execCmd)
+ s.apiRouter.POST("/signal", s.execSignalCmd)
+
+ s.apiRouter.GET("/events", s.eventsList)
+ s.apiRouter.POST("/events/register", s.eventsRegister)
+ s.apiRouter.POST("/events/unregister", s.eventsUnRegister)
+
+ return s
+}