Files
SamWaf/api/center_api.go
T

88 lines
2.0 KiB
Go

package api
import (
"SamWaf/global"
"SamWaf/model/common/response"
"SamWaf/model/request"
"errors"
"github.com/gin-gonic/gin"
"gorm.io/gorm"
)
type CenterApi struct {
}
func (w *CenterApi) UpdateApi(c *gin.Context) {
if global.GWAF_CENTER_ENABLE == "true" {
response.FailWithMessage("单台服务器不能同时为客户端和服务端", c)
return
}
clientCount, err2 := CenterService.CountApi()
if err2 != nil {
response.FailWithMessage("异常1", c)
return
}
if clientCount > global.GWAF_REG_FREE_COUNT {
response.FailWithMessage("授权数量超额", c)
return
}
global.GWAF_REG_CUR_CLIENT_COUNT = clientCount
var req request.CenterClientUpdateReq
err := c.ShouldBindJSON(&req)
if err == nil {
err = CenterService.CheckIsExistApi(req)
req.ClientIP = c.RemoteIP()
if err != nil && errors.Is(err, gorm.ErrRecordNotFound) {
err = CenterService.AddApi(req)
if err == nil {
response.OkWithMessage("添加成功", c)
} else {
response.FailWithMessage("添加失败", c)
}
return
} else {
err = CenterService.ModifyApi(req)
if err == nil {
response.OkWithMessage("更新成功", c)
} else {
response.FailWithMessage("更新失败", c)
}
return
}
} else {
response.FailWithMessage("解析失败", c)
}
}
func (w *CenterApi) GetDetailApi(c *gin.Context) {
var req request.CenterClientDetailReq
err := c.ShouldBind(&req)
if err == nil {
bean := CenterService.GetDetailApi(req)
response.OkWithDetailed(bean, "获取成功", c)
} else {
response.FailWithMessage("解析失败", c)
}
}
func (w *CenterApi) GetListApi(c *gin.Context) {
var req request.CenterClientSearchReq
err := c.ShouldBindJSON(&req)
if err == nil {
beans, total, _ := CenterService.GetListApi(req)
response.OkWithDetailed(response.PageResult{
List: beans,
Total: total,
PageIndex: req.PageIndex,
PageSize: req.PageSize,
}, "获取成功", c)
} else {
response.FailWithMessage("解析失败", c)
}
}