59 lines
1.5 KiB
Go
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)
|
|
}
|