Selaa lähdekoodia

refactor: uri

Yeuoly 10 kuukautta sitten
vanhempi
commit
e7b57878d2

+ 1 - 7
internal/server/controllers/base.go

@@ -10,14 +10,8 @@ import (
 
 func BindRequest[T any](r *gin.Context, success func(T)) {
 	var request T
-	var err error
 
-	context_type := r.GetHeader("Content-Type")
-	if context_type == "application/json" {
-		err = r.ShouldBindJSON(&request)
-	} else {
-		err = r.ShouldBind(&request)
-	}
+	err := r.ShouldBindUri(&request)
 
 	if err != nil {
 		resp := entities.NewErrorResponse(-400, err.Error())

+ 5 - 5
internal/server/controllers/plugins.go

@@ -31,7 +31,7 @@ func InstallPluginFromPkg(app *app.Config) gin.HandlerFunc {
 			return
 		}
 
-		tenant_id := c.PostForm("tenant_id")
+		tenant_id := c.Param("tenant_id")
 		if tenant_id == "" {
 			c.JSON(http.StatusOK, entities.NewErrorResponse(-400, "Tenant ID is required"))
 			return
@@ -56,7 +56,7 @@ func InstallPluginFromPkg(app *app.Config) gin.HandlerFunc {
 func InstallPluginFromIdentifier(app *app.Config) gin.HandlerFunc {
 	return func(c *gin.Context) {
 		BindRequest(c, func(request struct {
-			TenantID               string                                 `json:"tenant_id" binding:"required"`
+			TenantID               string                                 `uri:"tenant_id" binding:"required"`
 			PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `json:"plugin_unique_identifier" binding:"required" validate:"plugin_unique_identifier"`
 		}) {
 			c.JSON(http.StatusOK, service.InstallPluginFromIdentifier(c, request.TenantID, request.PluginUniqueIdentifier))
@@ -69,7 +69,7 @@ func UninstallPlugin(c *gin.Context) {
 
 func ListPlugins(c *gin.Context) {
 	BindRequest(c, func(request struct {
-		TenantID string `form:"tenant_id" binding:"required"`
+		TenantID string `uri:"tenant_id" binding:"required"`
 		Page     int    `form:"page" binding:"required,min=1"`
 		PageSize int    `form:"page_size" binding:"required,min=1,max=256"`
 	}) {
@@ -79,7 +79,7 @@ func ListPlugins(c *gin.Context) {
 
 func ListModels(c *gin.Context) {
 	BindRequest(c, func(request struct {
-		TenantID string `form:"tenant_id" binding:"required"`
+		TenantID string `uri:"tenant_id" binding:"required"`
 		Page     int    `form:"page" binding:"required,min=1"`
 		PageSize int    `form:"page_size" binding:"required,min=1,max=256"`
 	}) {
@@ -89,7 +89,7 @@ func ListModels(c *gin.Context) {
 
 func ListTools(c *gin.Context) {
 	BindRequest(c, func(request struct {
-		TenantID string `form:"tenant_id" binding:"required"`
+		TenantID string `uri:"tenant_id" binding:"required"`
 		Page     int    `form:"page" binding:"required,min=1"`
 		PageSize int    `form:"page_size" binding:"required,min=1,max=256"`
 	}) {

+ 6 - 6
internal/server/http_server.go

@@ -101,10 +101,10 @@ func (app *App) pluginGroup(group *gin.RouterGroup, config *app.Config) {
 	group.Use(CheckingKey(config.PluginInnerApiKey))
 
 	group.GET("/asset/:id", controllers.GetAsset)
-	group.POST("/install/pkg", controllers.InstallPluginFromPkg(config))
-	group.POST("/install/identifier", controllers.InstallPluginFromIdentifier(config))
-	group.POST("/uninstall", controllers.UninstallPlugin)
-	group.GET("/list", controllers.ListPlugins)
-	group.GET("/models", controllers.ListModels)
-	group.GET("/tools", controllers.ListTools)
+	group.POST("/:tenant_id/install/pkg", controllers.InstallPluginFromPkg(config))
+	group.POST("/:tenant_id/install/identifier", controllers.InstallPluginFromIdentifier(config))
+	group.POST("/:tenant_id/uninstall", controllers.UninstallPlugin)
+	group.GET("/:tenant_id/list", controllers.ListPlugins)
+	group.GET("/:tenant_id/models", controllers.ListModels)
+	group.GET("/:tenant_id/tools", controllers.ListTools)
 }