package controllers import ( "strconv" "lokistack/models" "lokistack/services" "lokistack/utils" "github.com/gin-gonic/gin" ) func (ctrl *LogsController) ListPolicyGroups(c *gin.Context) { utils.Success(c, models.SanitizedJSON(services.ListLogPolicyGroups())) } func (ctrl *LogsController) CreatePolicyGroup(c *gin.Context) { var group models.LogPolicyGroup if !utils.BindAndValidate(c, &group) { return } created, err := services.CreateLogPolicyGroup(group) if err != nil { utils.BadRequest(c, err.Error()) return } utils.Success(c, models.SanitizedJSON(created)) } func (ctrl *LogsController) UpdatePolicyGroup(c *gin.Context) { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { utils.BadRequest(c, "无效的策略组 ID") return } var group models.LogPolicyGroup if !utils.BindAndValidate(c, &group) { return } updated, err := services.UpdateLogPolicyGroup(uint(id), group) if err != nil { utils.BadRequest(c, err.Error()) return } utils.Success(c, models.SanitizedJSON(updated)) } func (ctrl *LogsController) DeletePolicyGroup(c *gin.Context) { id, err := strconv.ParseUint(c.Param("id"), 10, 64) if err != nil { utils.BadRequest(c, "无效的策略组 ID") return } if err := services.DeleteLogPolicyGroup(uint(id)); err != nil { utils.BadRequest(c, err.Error()) return } utils.Success(c, gin.H{"message": "deleted"}) }