更新提取接口参数,完善流程与测试代码逻辑

This commit is contained in:
2025-04-14 16:00:04 +08:00
parent 8c268fd7a9
commit e9749db50c
10 changed files with 140 additions and 115 deletions

View File

@@ -15,34 +15,22 @@ import (
// region CreateChannel
type CreateChannelReq struct {
ResourceId int32 `json:"resource_id" validate:"required"`
Protocol services.ChannelProtocol `json:"protocol" validate:"required,oneof=socks5 http https"`
AuthType services.ChannelAuthType `json:"auth_type" validate:"required,oneof=0 1"`
Count int `json:"count" validate:"required"`
Prov string `json:"prov" validate:"required"`
City string `json:"city" validate:"required"`
Isp string `json:"isp" validate:"required"`
ResultType CreateChannelResultType `json:"result_type" validate:"required,oneof=json text"`
ResultBreaker []rune `json:"result_breaker" validate:""`
ResultSeparator []rune `json:"result_separator" validate:""`
ResourceId int32 `json:"resource_id" validate:"required"`
AuthType services.ChannelAuthType `json:"auth_type" validate:"required"`
Protocol services.ChannelProtocol `json:"protocol" validate:"required"`
Count int `json:"count" validate:"required"`
Prov string `json:"prov"`
City string `json:"city"`
Isp string `json:"isp"`
}
func CreateChannel(c *fiber.Ctx) error {
req := new(CreateChannelReq)
if err := c.BodyParser(req); err != nil {
return err
}
if req.ResultType == "" {
req.ResultType = CreateChannelResultTypeText
}
if req.ResultBreaker == nil {
req.ResultBreaker = []rune("\r\n")
}
if req.ResultSeparator == nil {
req.ResultSeparator = []rune("|")
}
// 建立连接通道
auth, ok := c.Locals("auth").(*services.AuthContext)
if !ok {
@@ -66,35 +54,7 @@ func CreateChannel(c *fiber.Ctx) error {
return err
}
var separator = string(req.ResultSeparator)
switch req.ResultType {
case CreateChannelResultTypeJson:
return c.JSON(fiber.Map{
"code": 1,
"data": result,
})
default:
var breaker = string(req.ResultBreaker)
var str = strings.Builder{}
for _, info := range result {
str.WriteString(info.Host)
str.WriteString(separator)
str.WriteString(strconv.Itoa(info.Port))
if info.Username != nil {
str.WriteString(separator)
str.WriteString(*info.Username)
}
if info.Password != nil {
str.WriteString(separator)
str.WriteString(*info.Password)
}
str.WriteString(breaker)
}
return c.SendString(str.String())
}
return c.JSON(result)
}
type CreateChannelResultType string