diff --git a/internal/server/controllers/plugins.go b/internal/server/controllers/plugins.go index e0e76ad5c..e54602c46 100644 --- a/internal/server/controllers/plugins.go +++ b/internal/server/controllers/plugins.go @@ -241,11 +241,12 @@ func FetchPluginFromIdentifier(c *gin.Context) { func ListPlugins(c *gin.Context) { BindRequest(c, func(request struct { - 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"` + 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"` + ResponseType string `form:"response_type" validate:"omitempty,oneof=paged"` }) { - c.JSON(http.StatusOK, service.ListPlugins(request.TenantID, request.Page, request.PageSize)) + c.JSON(http.StatusOK, service.ListPlugins(request.TenantID, request.Page, request.PageSize, request.ResponseType)) }) } diff --git a/internal/service/manage_plugin.go b/internal/service/manage_plugin.go index b9794a020..94796a631 100644 --- a/internal/service/manage_plugin.go +++ b/internal/service/manage_plugin.go @@ -14,7 +14,7 @@ import ( "github.com/langgenius/dify-plugin-daemon/pkg/entities/plugin_entities" ) -func ListPlugins(tenant_id string, page int, page_size int) *entities.Response { +func ListPlugins(tenant_id string, page int, page_size int, response_type string) *entities.Response { type installation struct { ID string `json:"id"` Name string `json:"name"` @@ -96,12 +96,15 @@ func ListPlugins(tenant_id string, page int, page_size int) *entities.Response { }) } - finalData := responseData{ - List: data, - Total: totalCount, - } + if response_type == "paged" { + finalData := responseData{ + List: data, + Total: totalCount, + } - return entities.NewSuccessResponse(finalData) + return entities.NewSuccessResponse(finalData) + } + return entities.NewSuccessResponse(data) } // Using plugin_ids to fetch plugin installations