Files
TaskPool/internal/controllers/env_controller.go
T
2026-01-18 17:31:04 +08:00

110 lines
2.4 KiB
Go

package controllers
import (
"strconv"
"github.com/engigu/baihu-panel/internal/services"
"github.com/engigu/baihu-panel/internal/utils"
"github.com/gin-gonic/gin"
)
type EnvController struct {
envService *services.EnvService
}
func NewEnvController(envService *services.EnvService) *EnvController {
return &EnvController{envService: envService}
}
func (ec *EnvController) CreateEnvVar(c *gin.Context) {
userID := 1
var req struct {
Name string `json:"name" binding:"required"`
Value string `json:"value" binding:"required"`
Remark string `json:"remark"`
}
if err := c.ShouldBindJSON(&req); err != nil {
utils.BadRequest(c, err.Error())
return
}
envVar := ec.envService.CreateEnvVar(req.Name, req.Value, req.Remark, userID)
utils.Success(c, envVar)
}
func (ec *EnvController) GetEnvVars(c *gin.Context) {
userID := 1
p := utils.ParsePagination(c)
name := c.DefaultQuery("name", "")
envVars, total := ec.envService.GetEnvVarsWithPagination(userID, name, p.Page, p.PageSize)
utils.PaginatedResponse(c, envVars, total, p)
}
func (ec *EnvController) GetAllEnvVars(c *gin.Context) {
userID := 1
envVars := ec.envService.GetEnvVarsByUserID(userID)
utils.Success(c, envVars)
}
func (ec *EnvController) GetEnvVar(c *gin.Context) {
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
utils.BadRequest(c, "无效的环境变量ID")
return
}
envVar := ec.envService.GetEnvVarByID(id)
if envVar == nil {
utils.NotFound(c, "环境变量不存在")
return
}
utils.Success(c, envVar)
}
func (ec *EnvController) UpdateEnvVar(c *gin.Context) {
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
utils.BadRequest(c, "无效的环境变量ID")
return
}
var req struct {
Name string `json:"name"`
Value string `json:"value"`
Remark string `json:"remark"`
}
if err := c.ShouldBindJSON(&req); err != nil {
utils.BadRequest(c, err.Error())
return
}
envVar := ec.envService.UpdateEnvVar(id, req.Name, req.Value, req.Remark)
if envVar == nil {
utils.NotFound(c, "环境变量不存在")
return
}
utils.Success(c, envVar)
}
func (ec *EnvController) DeleteEnvVar(c *gin.Context) {
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
utils.BadRequest(c, "无效的环境变量ID")
return
}
success := ec.envService.DeleteEnvVar(id)
if !success {
utils.NotFound(c, "环境变量不存在")
return
}
utils.SuccessMsg(c, "删除成功")
}