dual check v0.1

This commit is contained in:
cancerai committed 2026-08-29 23:34:01 +08:00
1 parent 78bad1fa3d
commit c137299016
36 files changed
+3727 -81

No files matched your search

@@ -0,0 +1,39 @@
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
group.POST("/create", h.Create) // 发起方创建会话
group.POST("/submit", h.Submit) // 发起方或参与者提交文本
group.POST("/session/:session_id/join", h.Join) // 参与者加入(登记昵称)
group.POST("/session/:session_id/resubmit", h.SetResubmit) // 发起方切换"允许重提交"开关
group.POST("/session/:session_id/end", h.EndSession) // 发起方主动结束会话
group.GET("/session/:session_id", h.GetSession) // 拉全量状态
group.GET("/check/:session_id", h.CheckSession) // 加入前预校验
// WebSocket 实时推送(带 role + nickname 查询参数)
group.GET("/ws", ws.Handle)
}