Files
TaskPool/internal/controllers/mise_controller.go
T
2026-02-13 17:27:55 +08:00

63 lines
1.4 KiB
Go

package controllers
import (
"github.com/engigu/baihu-panel/internal/services"
"github.com/engigu/baihu-panel/internal/utils"
"github.com/gin-gonic/gin"
)
type MiseController struct {
service *services.MiseService
}
func NewMiseController(service *services.MiseService) *MiseController {
return &MiseController{
service: service,
}
}
// List 获取语言列表
func (c *MiseController) List(ctx *gin.Context) {
langs, err := c.service.List()
if err != nil {
utils.ServerError(ctx, "获取语言列表失败: "+err.Error())
return
}
utils.Success(ctx, langs)
}
// Sync 同步本地环境到数据库
func (c *MiseController) Sync(ctx *gin.Context) {
if err := c.service.Sync(); err != nil {
utils.ServerError(ctx, "同步本地环境失败: "+err.Error())
return
}
utils.Success(ctx, nil)
}
// Plugins 获取可用插件列表
func (c *MiseController) Plugins(ctx *gin.Context) {
plugins, err := c.service.Plugins()
if err != nil {
utils.ServerError(ctx, "获取插件列表失败: "+err.Error())
return
}
utils.Success(ctx, plugins)
}
// Versions 获取指定插件的可用版本列表
func (c *MiseController) Versions(ctx *gin.Context) {
plugin := ctx.Query("plugin")
if plugin == "" {
utils.BadRequest(ctx, "参数 plugin 不能为空")
return
}
versions, err := c.service.Versions(plugin)
if err != nil {
utils.ServerError(ctx, "获取版本列表失败: "+err.Error())
return
}
utils.Success(ctx, versions)
}