Initialize LineUp app server
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user