Yeuoly месяцев назад: 10
Родитель
Сommit
e7172076f9

+ 3 - 15
internal/server/controllers/base.go

@@ -10,27 +10,15 @@ import (
 
 func BindRequest[T any](r *gin.Context, success func(T)) {
 	var request T
-	var err error
 
 	if r.Request.Header.Get("Content-Type") == "application/json" {
-		err = r.ShouldBindJSON(&request)
+		r.ShouldBindJSON(&request)
 	} else {
-		err = r.ShouldBind(&request)
-	}
-
-	if err != nil {
-		resp := entities.NewErrorResponse(-400, err.Error())
-		r.JSON(400, resp)
-		return
+		r.ShouldBind(&request)
 	}
 
 	// bind uri
-	err = r.ShouldBindUri(&request)
-	if err != nil {
-		resp := entities.NewErrorResponse(-400, err.Error())
-		r.JSON(400, resp)
-		return
-	}
+	r.ShouldBindUri(&request)
 
 	// validate, we have customized some validators which are not supported by gin binding
 	if err := validators.GlobalEntitiesValidator.Struct(request); err != nil {

+ 13 - 13
internal/server/controllers/endpoint.go

@@ -9,10 +9,10 @@ import (
 func SetupEndpoint(ctx *gin.Context) {
 	BindRequest(ctx, func(
 		request struct {
-			PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `json:"plugin_unique_identifier" binding:"required" validate:"plugin_unique_identifier"`
-			TenantID               string                                 `json:"tenant_id" binding:"required"`
-			UserID                 string                                 `json:"user_id" binding:"required"`
-			Settings               map[string]any                         `json:"settings" binding:"omitempty"`
+			PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `json:"plugin_unique_identifier" validate:"required" validate:"plugin_unique_identifier"`
+			TenantID               string                                 `json:"tenant_id" validate:"required"`
+			UserID                 string                                 `json:"user_id" validate:"required"`
+			Settings               map[string]any                         `json:"settings" validate:"omitempty"`
 		},
 	) {
 		tenant_id := request.TenantID
@@ -28,9 +28,9 @@ func SetupEndpoint(ctx *gin.Context) {
 
 func ListEndpoints(ctx *gin.Context) {
 	BindRequest(ctx, func(request struct {
-		TenantID string `form:"tenant_id" binding:"required"`
-		Page     int    `form:"page" binding:"required"`
-		PageSize int    `form:"page_size" binding:"required,max=100"`
+		TenantID string `form:"tenant_id" validate:"required"`
+		Page     int    `form:"page" validate:"required"`
+		PageSize int    `form:"page_size" validate:"required,max=100"`
 	}) {
 		tenant_id := request.TenantID
 		page := request.Page
@@ -42,8 +42,8 @@ func ListEndpoints(ctx *gin.Context) {
 
 func RemoveEndpoint(ctx *gin.Context) {
 	BindRequest(ctx, func(request struct {
-		EndpointID string `json:"endpoint_id" binding:"required"`
-		TenantID   string `json:"tenant_id" binding:"required"`
+		EndpointID string `json:"endpoint_id" validate:"required"`
+		TenantID   string `json:"tenant_id" validate:"required"`
 	}) {
 		endpoint_id := request.EndpointID
 		tenant_id := request.TenantID
@@ -54,8 +54,8 @@ func RemoveEndpoint(ctx *gin.Context) {
 
 func EnableEndpoint(ctx *gin.Context) {
 	BindRequest(ctx, func(request struct {
-		EndpointID string `json:"endpoint_id" binding:"required"`
-		TenantID   string `json:"tenant_id" binding:"required"`
+		EndpointID string `json:"endpoint_id" validate:"required"`
+		TenantID   string `json:"tenant_id" validate:"required"`
 	}) {
 		tenant_id := request.TenantID
 		endpoint_id := request.EndpointID
@@ -66,8 +66,8 @@ func EnableEndpoint(ctx *gin.Context) {
 
 func DisableEndpoint(ctx *gin.Context) {
 	BindRequest(ctx, func(request struct {
-		EndpointID string `json:"endpoint_id" binding:"required"`
-		TenantID   string `json:"tenant_id" binding:"required"`
+		EndpointID string `json:"endpoint_id" validate:"required"`
+		TenantID   string `json:"tenant_id" validate:"required"`
 	}) {
 		tenant_id := request.TenantID
 		endpoint_id := request.EndpointID

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

@@ -56,8 +56,8 @@ 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                                 `uri:"tenant_id" binding:"required"`
-			PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `json:"plugin_unique_identifier" binding:"required" validate:"plugin_unique_identifier"`
+			TenantID               string                                 `uri:"tenant_id" validate:"required"`
+			PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `json:"plugin_unique_identifier" validate:"required" validate:"plugin_unique_identifier"`
 		}) {
 			c.JSON(http.StatusOK, service.InstallPluginFromIdentifier(c, request.TenantID, request.PluginUniqueIdentifier))
 		})
@@ -69,9 +69,9 @@ func UninstallPlugin(c *gin.Context) {
 
 func ListPlugins(c *gin.Context) {
 	BindRequest(c, func(request struct {
-		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"`
+		TenantID string `uri:"tenant_id" validate:"required"`
+		Page     int    `form:"page" validate:"required,min=1"`
+		PageSize int    `form:"page_size" validate:"required,min=1,max=256"`
 	}) {
 		c.JSON(http.StatusOK, service.ListPlugins(request.TenantID, request.Page, request.PageSize))
 	})
@@ -79,9 +79,9 @@ func ListPlugins(c *gin.Context) {
 
 func ListModels(c *gin.Context) {
 	BindRequest(c, func(request struct {
-		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"`
+		TenantID string `uri:"tenant_id" validate:"required"`
+		Page     int    `form:"page" validate:"required,min=1"`
+		PageSize int    `form:"page_size" validate:"required,min=1,max=256"`
 	}) {
 		c.JSON(http.StatusOK, service.ListModels(request.TenantID, request.Page, request.PageSize))
 	})
@@ -89,9 +89,9 @@ func ListModels(c *gin.Context) {
 
 func ListTools(c *gin.Context) {
 	BindRequest(c, func(request struct {
-		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"`
+		TenantID string `uri:"tenant_id" validate:"required"`
+		Page     int    `form:"page" validate:"required,min=1"`
+		PageSize int    `form:"page_size" validate:"required,min=1,max=256"`
 	}) {
 		c.JSON(http.StatusOK, service.ListTools(request.TenantID, request.Page, request.PageSize))
 	})

+ 3 - 3
internal/types/entities/plugin_entities/request.go

@@ -1,8 +1,8 @@
 package plugin_entities
 
 type InvokePluginUserIdentity struct {
-	TenantId string `json:"tenant_id" binding:"required"`
-	UserId   string `json:"user_id" binding:"required"`
+	TenantId string `json:"tenant_id" validate:"required"`
+	UserId   string `json:"user_id" validate:"required"`
 }
 
 type BasePluginIdentifier struct {
@@ -13,5 +13,5 @@ type InvokePluginRequest[T any] struct {
 	InvokePluginUserIdentity
 	BasePluginIdentifier
 
-	Data T `json:"data" binding:"required"`
+	Data T `json:"data" validate:"required"`
 }