feat(protocol): add server protocol configuration query and enhance protocol options

This commit is contained in:
Chang lue Tsen
2025-09-13 14:20:04 -04:00
parent c1c913cb00
commit 2c5efa2026
10 changed files with 199 additions and 31 deletions
+7
View File
@@ -842,4 +842,11 @@ func RegisterHandlers(router *gin.Engine, serverCtx *svc.ServiceContext) {
// Get user list
serverGroupRouter.GET("/user", server.GetServerUserListHandler(serverCtx))
}
serverV2GroupRouter := router.Group("/v2/server")
{
// Get Server Protocol Config
serverV2GroupRouter.GET("/:server_id", server.QueryServerProtocolConfigHandler(serverCtx))
}
}
@@ -0,0 +1,41 @@
package server
import (
"net/http"
"strconv"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/server/internal/logic/server"
"github.com/perfect-panel/server/internal/svc"
"github.com/perfect-panel/server/internal/types"
"github.com/perfect-panel/server/pkg/logger"
"github.com/perfect-panel/server/pkg/result"
)
// QueryServerProtocolConfigHandler Get Server Protocol Config
func QueryServerProtocolConfigHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.QueryServerConfigRequest
serverID, err := strconv.ParseInt(c.Param("server_id"), 10, 64)
if err != nil {
logger.Debugf("[QueryServerProtocolConfigHandler] - strconv.ParseInt(server_id) error: %v, Param: %s", err, c.Param("server_id"))
c.String(http.StatusBadRequest, "Invalid Params")
c.Abort()
return
}
req.ServerID = serverID
key := c.GetHeader("secret_key")
if key == "" || key != svcCtx.Config.Node.NodeSecret {
logger.Debugf("[QueryServerProtocolConfigHandler] - secret_key error: %s", key)
c.String(http.StatusUnauthorized, "Unauthorized")
c.Abort()
return
}
l := server.NewQueryServerProtocolConfigLogic(c.Request.Context(), svcCtx)
resp, err := l.QueryServerProtocolConfig(&req)
result.HttpResult(c, resp, err)
}
}