package system import ( "fmt" "kra/internal/biz/system" "kra/pkg/response" "github.com/gin-gonic/gin" ) // Install 安装插件 // @Tags AutoCodePlugin // @Summary 安装插件 // @Security ApiKeyAuth // @accept multipart/form-data // @Produce application/json // @Param plug formData file true "插件文件" // @Success 200 {object} response.Response{data=[]interface{}} "安装成功" // @Router /autoCode/installPlugin [post] func (a *AutoCodePluginApi) Install(c *gin.Context) { header, err := c.FormFile("plug") if err != nil { response.FailWithMessage(err.Error(), c) return } web, server, err := autoCodePluginUsecase.Install(header) webStr := "web插件安装成功" serverStr := "server插件安装成功" if web == -1 { webStr = "web端插件未成功安装,请按照文档自行解压安装,如果为纯后端插件请忽略此条提示" } if server == -1 { serverStr = "server端插件未成功安装,请按照文档自行解压安装,如果为纯前端插件请忽略此条提示" } if err != nil { response.FailWithMessage(err.Error(), c) return } response.OkWithData([]interface{}{ gin.H{ "code": web, "msg": webStr, }, gin.H{ "code": server, "msg": serverStr, }}, c) } // Packaged 打包插件 // @Tags AutoCodePlugin // @Summary 打包插件 // @Security ApiKeyAuth // @accept application/json // @Produce application/json // @Param plugName query string true "插件名称" // @Success 200 {object} response.Response{msg=string} "打包成功" // @Router /autoCode/pubPlug [post] func (a *AutoCodePluginApi) Packaged(c *gin.Context) { plugName := c.Query("plugName") zipPath, err := autoCodePluginUsecase.PubPlug(plugName) if err != nil { response.FailWithMessage("打包失败: "+err.Error(), c) return } response.OkWithMessage(fmt.Sprintf("打包成功,文件路径为:%s", zipPath), c) } // InitMenu 初始化插件菜单 // @Tags AutoCodePlugin // @Summary 初始化插件菜单 // @Security ApiKeyAuth // @accept application/json // @Produce application/json // @Param data body system.InitMenuRequest true "菜单信息" // @Success 200 {object} response.Response{msg=string} "初始化成功" // @Router /autoCode/initMenu [post] func (a *AutoCodePluginApi) InitMenu(c *gin.Context) { var menuInfo system.InitMenuRequest err := c.ShouldBindJSON(&menuInfo) if err != nil { response.FailWithMessage(err.Error(), c) return } err = autoCodePluginUsecase.InitMenu(c.Request.Context(), menuInfo) if err != nil { response.FailWithMessage("创建初始化Menu失败: "+err.Error(), c) return } response.OkWithMessage("文件变更成功", c) } // InitAPI 初始化插件API // @Tags AutoCodePlugin // @Summary 初始化插件API // @Security ApiKeyAuth // @accept application/json // @Produce application/json // @Param data body system.InitApiRequest true "API信息" // @Success 200 {object} response.Response{msg=string} "初始化成功" // @Router /autoCode/initAPI [post] func (a *AutoCodePluginApi) InitAPI(c *gin.Context) { var apiInfo system.InitApiRequest err := c.ShouldBindJSON(&apiInfo) if err != nil { response.FailWithMessage(err.Error(), c) return } err = autoCodePluginUsecase.InitAPI(c.Request.Context(), apiInfo) if err != nil { response.FailWithMessage("创建初始化API失败: "+err.Error(), c) return } response.OkWithMessage("文件变更成功", c) }