:art:同步配置文件改为队列操作(没写完)

This commit is contained in:
coward
2024-03-08 16:30:29 +08:00
parent d41a6e9ba2
commit c274c59044
8 changed files with 343 additions and 14 deletions

View File

@@ -1,7 +1,11 @@
package api
import (
"gitee.ltd/lxh/logger/log"
"github.com/gin-gonic/gin"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
"wireguard-dashboard/http/param"
"wireguard-dashboard/model/entity"
"wireguard-dashboard/repository"
"wireguard-dashboard/utils"
)
@@ -12,6 +16,49 @@ func Server() server {
return server{}
}
// SaveServer
// @description: 新增/更新服务端信息
// @receiver server
// @param c
func (server) SaveServer(c *gin.Context) {
var p param.SaveServer
if err := c.ShouldBind(&p); err != nil {
utils.GinResponse(c).FailedWithErr("参数错误", err)
return
}
var err error
if p.Id != "" {
if err = repository.Server().Update(p); err != nil {
log.Errorf("更改服务端信息失败: %v", err.Error())
}
} else {
privateKey, err := wgtypes.GeneratePrivateKey()
if err != nil {
utils.GinResponse(c).FailedWithMsg("生成密钥失败")
return
}
publicKey := privateKey.PublicKey()
if err = repository.Server().Save(&entity.Server{
IpScope: p.IpScope,
ListenPort: p.ListenPort,
PrivateKey: privateKey.String(),
PublicKey: publicKey.String(),
PostUpScript: p.PostUpScript,
PreDownScript: p.PreDownScript,
PostDownScript: p.PostDownScript,
}); err != nil {
log.Errorf("新增服务端失败: %v", err.Error())
}
}
if err != nil {
utils.GinResponse(c).FailedWithMsg("操作失败")
return
}
}
// GetServer
// @description: 获取服务端信息
// @receiver wireguard
@@ -19,8 +66,20 @@ func Server() server {
func (server) GetServer(c *gin.Context) {
data, err := repository.Server().GetServer()
if err != nil {
utils.GinResponse(c).FailedWithMsg("获取服务端信息失败")
return
log.Errorf("获取服务端信息失败: %v", err.Error())
}
utils.GinResponse(c).OKWithData(data)
}
// GetGlobalSetting
// @description: 获取全局设置配置
// @receiver server
// @param c
func (server) GetGlobalSetting(c *gin.Context) {
data, err := repository.System().GetServerSetting()
if err != nil {
log.Errorf("获取配置失败: %v", err.Error())
}
utils.GinResponse(c).OKWithData(data)

10
http/param/server.go Normal file
View File

@@ -0,0 +1,10 @@
package param
type SaveServer struct {
Id string `json:"id" form:"id" binding:"omitempty"` // id
IpScope string `json:"ipScope" form:"ipScope" binding:"required"` // 内网ip范围段
ListenPort int `json:"listenPort" form:"listenPort" binding:"required"` // 监听端口
PostUpScript string `json:"postUpScript" form:"postUpScript" binding:"omitempty"`
PreDownScript string `json:"preDownScript" form:"preDownScript" binding:"omitempty"`
PostDownScript string `json:"postDownScript" form:"postDownScript" binding:"omitempty"`
}