Przeglądaj źródła

fix: add endpoint name

Yeuoly 10 miesięcy temu
rodzic
commit
ee8ac6cf20

+ 6 - 2
internal/server/controllers/endpoint.go

@@ -13,15 +13,17 @@ func SetupEndpoint(ctx *gin.Context) {
 			TenantID               string                                 `uri:"tenant_id" validate:"required"`
 			UserID                 string                                 `json:"user_id" validate:"required"`
 			Settings               map[string]any                         `json:"settings" validate:"omitempty"`
+			Name                   string                                 `json:"name" validate:"required"`
 		},
 	) {
 		tenant_id := request.TenantID
 		user_id := request.UserID
 		settings := request.Settings
 		plugin_unique_identifier := request.PluginUniqueIdentifier
+		name := request.Name
 
 		ctx.JSON(200, service.SetupEndpoint(
-			tenant_id, user_id, plugin_unique_identifier, settings,
+			tenant_id, user_id, plugin_unique_identifier, name, settings,
 		))
 	})
 }
@@ -74,13 +76,15 @@ func UpdateEndpoint(ctx *gin.Context) {
 		TenantID   string         `uri:"tenant_id" validate:"required"`
 		UserID     string         `json:"user_id" validate:"required"`
 		Settings   map[string]any `json:"settings" validate:"omitempty"`
+		Name       string         `json:"name" validate:"required"`
 	}) {
 		tenant_id := request.TenantID
 		user_id := request.UserID
 		endpoint_id := request.EndpointID
 		settings := request.Settings
+		name := request.Name
 
-		ctx.JSON(200, service.UpdateEndpoint(endpoint_id, tenant_id, user_id, settings))
+		ctx.JSON(200, service.UpdateEndpoint(endpoint_id, tenant_id, user_id, name, settings))
 	})
 }
 

+ 1 - 0
internal/server/controllers/tool.go

@@ -48,6 +48,7 @@ func GetToolRuntimeParameters(config *app.Config) gin.HandlerFunc {
 		)
 	}
 }
+
 func ListTools(c *gin.Context) {
 	BindRequest(c, func(request struct {
 		TenantID string `uri:"tenant_id" validate:"required"`

+ 4 - 1
internal/service/install_service/state.go

@@ -68,6 +68,7 @@ func InstallEndpoint(
 	installation_id string,
 	tenant_id string,
 	user_id string,
+	name string,
 	settings map[string]any,
 ) (*models.Endpoint, error) {
 	settings_json, err := json.Marshal(settings)
@@ -80,6 +81,7 @@ func InstallEndpoint(
 		PluginID:  plugin_id.PluginID(),
 		TenantID:  tenant_id,
 		UserID:    user_id,
+		Name:      name,
 		Enabled:   true,
 		ExpiredAt: time.Date(2050, 1, 1, 0, 0, 0, 0, time.UTC),
 		Settings:  string(settings_json),
@@ -192,12 +194,13 @@ func DisabledEndpoint(endpoint *models.Endpoint) error {
 	})
 }
 
-func UpdateEndpoint(endpoint *models.Endpoint, settings map[string]any) error {
+func UpdateEndpoint(endpoint *models.Endpoint, name string, settings map[string]any) error {
 	settings_json, err := json.Marshal(settings)
 	if err != nil {
 		return err
 	}
 
+	endpoint.Name = name
 	endpoint.Settings = string(settings_json)
 
 	return db.Update(endpoint)

+ 6 - 4
internal/service/setup_endpoint.go

@@ -18,6 +18,7 @@ func SetupEndpoint(
 	tenant_id string,
 	user_id string,
 	plugin_unique_identifier plugin_entities.PluginUniqueIdentifier,
+	name string,
 	settings map[string]any,
 ) *entities.Response {
 	// try find plugin installation
@@ -53,6 +54,7 @@ func SetupEndpoint(
 		installation.ID,
 		tenant_id,
 		user_id,
+		name,
 		map[string]any{},
 	)
 	if err != nil {
@@ -86,7 +88,7 @@ func SetupEndpoint(
 		return entities.NewErrorResponse(-500, fmt.Sprintf("failed to encrypt settings: %v", err))
 	}
 
-	if err := install_service.UpdateEndpoint(endpoint, encrypted_settings); err != nil {
+	if err := install_service.UpdateEndpoint(endpoint, name, encrypted_settings); err != nil {
 		return entities.NewErrorResponse(-500, fmt.Sprintf("failed to update endpoint: %v", err))
 	}
 
@@ -95,7 +97,7 @@ func SetupEndpoint(
 
 func RemoveEndpoint(endpoint_id string, tenant_id string) *entities.Response {
 	endpoint, err := db.GetOne[models.Endpoint](
-		db.Equal("endpoint_id", endpoint_id),
+		db.Equal("id", endpoint_id),
 		db.Equal("tenant_id", tenant_id),
 	)
 	if err != nil {
@@ -131,7 +133,7 @@ func RemoveEndpoint(endpoint_id string, tenant_id string) *entities.Response {
 	return entities.NewSuccessResponse(nil)
 }
 
-func UpdateEndpoint(endpoint_id string, tenant_id string, user_id string, settings map[string]any) *entities.Response {
+func UpdateEndpoint(endpoint_id string, tenant_id string, user_id string, name string, settings map[string]any) *entities.Response {
 	// get endpoint
 	endpoint, err := db.GetOne[models.Endpoint](
 		db.Equal("id", endpoint_id),
@@ -229,7 +231,7 @@ func UpdateEndpoint(endpoint_id string, tenant_id string, user_id string, settin
 	}
 
 	// update endpoint
-	if err := install_service.UpdateEndpoint(&endpoint, encrypted_settings); err != nil {
+	if err := install_service.UpdateEndpoint(&endpoint, name, encrypted_settings); err != nil {
 		return entities.NewErrorResponse(-500, fmt.Sprintf("failed to update endpoint: %v", err))
 	}
 

+ 1 - 0
internal/types/models/endpoint.go

@@ -10,6 +10,7 @@ import (
 // HookID is a pointer to plugin id and tenant id, using it to identify the endpoint plugin
 type Endpoint struct {
 	Model
+	Name        string                                       `json:"name" gorm:"size:127;column:name;default:'default'"`
 	HookID      string                                       `json:"hook_id" gorm:"unique;size:127;column:hook_id"`
 	TenantID    string                                       `json:"tenant_id" gorm:"index;size:64;column:tenant_id"`
 	UserID      string                                       `json:"user_id" gorm:"index;size:64;column:user_id"`