kra/internal/server/handler/system/sys_auto_code_plugin.go

117 lines
3.5 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
}