101 lines
3.2 KiB
Go
101 lines
3.2 KiB
Go
package system
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"kra/internal/biz/system"
|
|
"kra/pkg/response"
|
|
"kra/pkg/utils"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// Create 创建package
|
|
// @Tags AutoCodePackage
|
|
// @Summary 创建package
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data body system.SysAutoCodePackage true "创建package"
|
|
// @Success 200 {object} response.Response{msg=string} "创建package成功"
|
|
// @Router /autoCode/createPackage [post]
|
|
func (a *AutoCodePackageApi) Create(c *gin.Context) {
|
|
var info system.SysAutoCodePackage
|
|
if err := c.ShouldBindJSON(&info); err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
if err := utils.Verify(info, utils.AutoPackageVerify); err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
// PackageName可能导致路径穿越的问题 / 和 \ 都要防止
|
|
if strings.Contains(info.PackageName, "\\") || strings.Contains(info.PackageName, "/") || strings.Contains(info.PackageName, "..") {
|
|
response.FailWithMessage("包名不合法", c)
|
|
return
|
|
}
|
|
if err := autoCodePackageUsecase.Create(c.Request.Context(), &info); err != nil {
|
|
response.FailWithMessage("创建失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
response.OkWithMessage("创建成功", c)
|
|
}
|
|
|
|
// Delete 删除package
|
|
// @Tags AutoCodePackage
|
|
// @Summary 删除package
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Param data body map[string]uint true "删除package"
|
|
// @Success 200 {object} response.Response{msg=string} "删除package成功"
|
|
// @Router /autoCode/delPackage [post]
|
|
func (a *AutoCodePackageApi) Delete(c *gin.Context) {
|
|
var req struct {
|
|
ID uint `json:"id"`
|
|
}
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
response.FailWithMessage(err.Error(), c)
|
|
return
|
|
}
|
|
if err := autoCodePackageUsecase.Delete(c.Request.Context(), req.ID); err != nil {
|
|
response.FailWithMessage("删除失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
response.OkWithMessage("删除成功", c)
|
|
}
|
|
|
|
// All 获取所有package
|
|
// @Tags AutoCodePackage
|
|
// @Summary 获取package
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} "获取package成功"
|
|
// @Router /autoCode/getPackage [post]
|
|
func (a *AutoCodePackageApi) All(c *gin.Context) {
|
|
data, err := autoCodePackageUsecase.All(c.Request.Context())
|
|
if err != nil {
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(gin.H{"pkgs": data}, "获取成功", c)
|
|
}
|
|
|
|
// Templates 获取所有模版
|
|
// @Tags AutoCodePackage
|
|
// @Summary 获取所有模版
|
|
// @Security ApiKeyAuth
|
|
// @accept application/json
|
|
// @Produce application/json
|
|
// @Success 200 {object} response.Response{data=map[string]interface{},msg=string} "获取模版成功"
|
|
// @Router /autoCode/getTemplates [get]
|
|
func (a *AutoCodePackageApi) Templates(c *gin.Context) {
|
|
data, err := autoCodePackageUsecase.GetTemplateNames(c.Request.Context())
|
|
if err != nil {
|
|
response.FailWithMessage("获取失败: "+err.Error(), c)
|
|
return
|
|
}
|
|
response.OkWithDetailed(data, "获取成功", c)
|
|
}
|