| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | package controllersimport (	"github.com/gin-gonic/gin"	"github.com/langgenius/dify-plugin-daemon/internal/service"	"github.com/langgenius/dify-plugin-daemon/internal/types/entities/plugin_entities")func SetupEndpoint(ctx *gin.Context) {	BindRequest(ctx, func(		request struct {			PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `json:"plugin_unique_identifier" validate:"required,plugin_unique_identifier"`			TenantID               string                                 `uri:"tenant_id" validate:"required"`			UserID                 string                                 `json:"user_id" validate:"required"`			Settings               map[string]any                         `json:"settings" validate:"omitempty"`		},	) {		tenant_id := request.TenantID		user_id := request.UserID		settings := request.Settings		plugin_unique_identifier := request.PluginUniqueIdentifier		ctx.JSON(200, service.SetupEndpoint(			tenant_id, user_id, plugin_unique_identifier, settings,		))	})}func ListEndpoints(ctx *gin.Context) {	BindRequest(ctx, func(request struct {		TenantID string `uri:"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		page_size := request.PageSize		ctx.JSON(200, service.ListEndpoints(tenant_id, page, page_size))	})}func ListPluginEndpoints(ctx *gin.Context) {	BindRequest(ctx, func(request struct {		TenantID               string                                 `uri:"tenant_id" validate:"required"`		PluginUniqueIdentifier plugin_entities.PluginUniqueIdentifier `form:"plugin_unique_identifier" validate:"required,plugin_unique_identifier"`		Page                   int                                    `form:"page" validate:"required"`		PageSize               int                                    `form:"page_size" validate:"required,max=100"`	}) {		tenant_id := request.TenantID		plugin_unique_identifier := request.PluginUniqueIdentifier		page := request.Page		page_size := request.PageSize		ctx.JSON(200, service.ListPluginEndpoints(tenant_id, plugin_unique_identifier, page, page_size))	})}func RemoveEndpoint(ctx *gin.Context) {	BindRequest(ctx, func(request struct {		EndpointID string `json:"endpoint_id" validate:"required"`		TenantID   string `uri:"tenant_id" validate:"required"`	}) {		endpoint_id := request.EndpointID		tenant_id := request.TenantID		ctx.JSON(200, service.RemoveEndpoint(endpoint_id, tenant_id))	})}func UpdateEndpoint(ctx *gin.Context) {	BindRequest(ctx, func(request struct {		EndpointID string         `json:"endpoint_id" validate:"required"`		TenantID   string         `uri:"tenant_id" validate:"required"`		UserID     string         `json:"user_id" validate:"required"`		Settings   map[string]any `json:"settings" validate:"omitempty"`	}) {		tenant_id := request.TenantID		user_id := request.UserID		endpoint_id := request.EndpointID		settings := request.Settings		ctx.JSON(200, service.UpdateEndpoint(endpoint_id, tenant_id, user_id, settings))	})}func EnableEndpoint(ctx *gin.Context) {	BindRequest(ctx, func(request struct {		EndpointID string `json:"endpoint_id" validate:"required"`		TenantID   string `uri:"tenant_id" validate:"required"`	}) {		tenant_id := request.TenantID		endpoint_id := request.EndpointID		ctx.JSON(200, service.EnableEndpoint(endpoint_id, tenant_id))	})}func DisableEndpoint(ctx *gin.Context) {	BindRequest(ctx, func(request struct {		EndpointID string `json:"endpoint_id" validate:"required"`		TenantID   string `uri:"tenant_id" validate:"required"`	}) {		tenant_id := request.TenantID		endpoint_id := request.EndpointID		ctx.JSON(200, service.DisableEndpoint(endpoint_id, tenant_id))	})}
 |