Полный продакшен-рефактор fix25: split peer/admin, удаление legacy, шифрование secret, auth_id, новые API/роуты и зачистка subscription
This commit is contained in:
@@ -2,27 +2,12 @@ package controller
|
||||
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/skip2/go-qrcode"
|
||||
"hy2xs-admin/model/dto"
|
||||
"hy2xs-admin/model/vo"
|
||||
"hy2xs-admin/service"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func resolvePeerID(c *gin.Context) (*int64, bool) {
|
||||
raw := strings.TrimSpace(c.Param("id"))
|
||||
if raw == "" {
|
||||
return nil, false
|
||||
}
|
||||
parsed, err := strconv.ParseInt(raw, 10, 64)
|
||||
if err != nil || parsed <= 0 {
|
||||
return nil, false
|
||||
}
|
||||
return &parsed, true
|
||||
}
|
||||
|
||||
func Hysteria2Auth(c *gin.Context) {
|
||||
var req dto.Hysteria2AuthDto
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
@@ -48,19 +33,6 @@ func Hysteria2Auth(c *gin.Context) {
|
||||
vo.Hysteria2AuthSuccess(username, c)
|
||||
}
|
||||
|
||||
func Hysteria2Kick(c *gin.Context) {
|
||||
hysteria2KickDto, err := validateField(c, dto.Hysteria2KickDto{})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
err = service.Hysteria2Kick(hysteria2KickDto.Ids, *hysteria2KickDto.KickUtilTime)
|
||||
if err != nil {
|
||||
vo.Fail(err.Error(), c)
|
||||
return
|
||||
}
|
||||
vo.Success(nil, c)
|
||||
}
|
||||
|
||||
func Hysteria2ChangeVersion(c *gin.Context) {
|
||||
vo.Fail("Смена версии Hysteria2 отключена: runtime управляется install-оркестратором HY2XS", c)
|
||||
}
|
||||
@@ -68,33 +40,3 @@ func Hysteria2ChangeVersion(c *gin.Context) {
|
||||
func ListRelease(c *gin.Context) {
|
||||
vo.Success([]string{}, c)
|
||||
}
|
||||
|
||||
func Hysteria2Url(c *gin.Context) {
|
||||
hysteria2UrlDto := dto.Hysteria2UrlDto{}
|
||||
if id, ok := resolvePeerID(c); ok {
|
||||
hysteria2UrlDto.AccountId = id
|
||||
} else {
|
||||
var err error
|
||||
hysteria2UrlDto, err = validateField(c, dto.Hysteria2UrlDto{})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
url, err := service.Hysteria2Url(*hysteria2UrlDto.AccountId)
|
||||
if err != nil {
|
||||
vo.Fail(err.Error(), c)
|
||||
return
|
||||
}
|
||||
// Генерация QR-кода
|
||||
qrCode, err := qrcode.Encode(url, qrcode.Medium, 300)
|
||||
if err != nil {
|
||||
vo.Fail(err.Error(), c)
|
||||
return
|
||||
}
|
||||
hysteria2UrlVo := vo.Hysteria2UrlVo{
|
||||
Url: url,
|
||||
QrCode: qrCode,
|
||||
}
|
||||
vo.Success(hysteria2UrlVo, c)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user