Files
2026-08-07 13:36:56 +08:00

59 lines
1.5 KiB
Go

package modules
import (
"github.com/gin-gonic/gin"
"github.com/lineup/app-server/internal"
"github.com/lineup/app-server/internal/wkapi"
"github.com/spf13/viper"
)
// SetupRoutes 注册所有模块路由
func SetupRoutes(r *gin.Engine, vp *viper.Viper) {
// 共享依赖
hub := internal.NewHub()
wk := wkapi.New(vp.GetString("wukongim.apiURL"))
// 自动创建 Agent 频道
agentChannelID := vp.GetString("agent.channelID")
agentUID := vp.GetString("agent.uid")
agentChannelType := uint8(vp.GetInt("agent.channelType"))
if agentChannelType == 0 {
agentChannelType = 2
}
if agentChannelID != "" && agentUID != "" {
if err := wk.UpsertChannel(agentChannelID, agentChannelType, []string{agentUID}); err != nil {
// ignore upsert error, channel may already exist
_ = err
}
}
// 健康检查
r.GET("/healthz", func(c *gin.Context) {
c.JSON(200, gin.H{"status": "ok"})
})
// 用户模块
userModule := &UserModule{vp: vp, wk: wk}
userModule.RegisterRoutes(r)
// Channel 模块
channelModule := NewChannelModule(wk)
channelModule.RegisterRoutes(r)
// Message 模块
messageModule := NewMessageModule(wk)
messageModule.RegisterRoutes(r)
// Agent 控制面:外部 Hermes Adapter 的存活与消费游标。
agentModule := NewAgentModule(vp)
agentModule.RegisterRoutes(r)
// Webhook 模块
webhookModule := NewWebhookModule(hub)
webhookModule.RegisterRoutes(r)
// Client WebSocket 模块
clientModule := NewClientModule(hub, wk)
clientModule.RegisterRoutes(r)
}