Files
toolbox/server/internal/tools/dual_check/routes.go
T
2026-08-30 21:25:22 +08:00

41 lines
1.3 KiB
Go

package dual_check
import (
"time"
"cancerai.top/toolbox-server/internal/pkg/websocket"
"cancerai.top/toolbox-server/internal/store"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
// Register 把 DualCheck 工具的所有路由注册到指定 RouterGroup
func Register(
group *gin.RouterGroup,
sessionStore store.SessionStore,
hub *websocket.Hub,
logger *zap.Logger,
ttlSeconds int,
maxTextLen int,
) {
ttl := time.Duration(ttlSeconds) * time.Second
svc := NewService(sessionStore, logger, ttl)
h := NewHandler(svc, hub, logger, maxTextLen)
ws := NewWSHandler(svc, hub, logger)
// REST API — 所有 session_id 走 POST body
group.POST("/create", h.Create) // 发起方创建会话
group.POST("/submit", h.Submit) // 发起方或参与者提交文本
group.POST("/join", h.Join) // 参与者加入(登记昵称)
group.POST("/resubmit", h.SetResubmit) // 发起方切换"允许重提交"开关
group.POST("/ignore-ws", h.SetIgnoreWs) // 发起方切换"忽略首尾空白"开关
group.POST("/end", h.EndSession) // 发起方主动结束会话
group.POST("/session", h.GetSession) // 拉全量状态
group.POST("/check", h.CheckSession) // 加入前预校验
// WebSocket 实时推送(带 role + nickname 查询参数)
group.GET("/ws", ws.Handle)
}