Преглед на файлове

fix: delete plugin item from install task

Yeuoly преди 8 месеца
родител
ревизия
b0680f9403
променени са 2 файла, в които са добавени 13 реда и са изтрити 5 реда
  1. 12 4
      internal/server/controllers/plugins.go
  2. 1 1
      internal/service/install_plugin.go

+ 12 - 4
internal/server/controllers/plugins.go

@@ -2,6 +2,7 @@ package controllers
 
 import (
 	"net/http"
+	"strings"
 
 	"github.com/gin-gonic/gin"
 	"github.com/langgenius/dify-plugin-daemon/internal/core/plugin_manager"
@@ -156,11 +157,18 @@ func DeletePluginInstallationTask(c *gin.Context) {
 
 func DeletePluginInstallationItemFromTask(c *gin.Context) {
 	BindRequest(c, func(request struct {
-		TenantID   string                                 `uri:"tenant_id" validate:"required"`
-		TaskID     string                                 `uri:"id" validate:"required"`
-		Identifier plugin_entities.PluginUniqueIdentifier `uri:"identifier" validate:"required,plugin_unique_identifier"`
+		TenantID   string `uri:"tenant_id" validate:"required"`
+		TaskID     string `uri:"id" validate:"required"`
+		Identifier string `uri:"identifier" validate:"required"`
 	}) {
-		c.JSON(http.StatusOK, service.DeletePluginInstallationItemFromTask(request.TenantID, request.TaskID, request.Identifier))
+		identifierString := strings.TrimLeft(request.Identifier, "/")
+		identifier, err := plugin_entities.NewPluginUniqueIdentifier(identifierString)
+		if err != nil {
+			c.JSON(http.StatusOK, entities.NewErrorResponse(-400, err.Error()))
+			return
+		}
+
+		c.JSON(http.StatusOK, service.DeletePluginInstallationItemFromTask(request.TenantID, request.TaskID, identifier))
 	})
 }
 

+ 1 - 1
internal/service/install_plugin.go

@@ -463,7 +463,7 @@ func DeletePluginInstallationItemFromTask(
 	err := db.WithTransaction(func(tx *gorm.DB) error {
 		item, err := db.GetOne[models.InstallTask](
 			db.WithTransactionContext(tx),
-			db.Equal("task_id", task_id),
+			db.Equal("id", task_id),
 			db.Equal("tenant_id", tenant_id),
 			db.WLock(),
 		)