qq_bot/webserver/router.go
2025-07-05 15:46:36 +08:00

40 lines
1.3 KiB
Go

package webserver
import (
"time"
"git.lxtend.com/lixiangwuxian/qqbot/handler/restart"
"git.lxtend.com/lixiangwuxian/qqbot/handler/ticket"
"git.lxtend.com/lixiangwuxian/qqbot/health"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/hertz-contrib/cors"
)
var herzServerStarted = false
func StartRouter() {
if herzServerStarted {
return
}
herzServerStarted = true
herzServer := server.New(server.WithHostPorts(":3434"))
herzServer.Use(cors.New(cors.Config{
AllowOrigins: []string{"https://www.lxtend.com", "https://git.lxtend.com"},
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowHeaders: []string{"Origin", "Content-Type", "Accept", "Authorization", "X-CSRF-Token"},
ExposeHeaders: []string{"Content-Length", "X-CSRF-Token"},
AllowCredentials: true,
MaxAge: 12 * time.Hour,
}))
healthEngine := herzServer.Group("/health")
healthEngine.GET("/ping", health.HealthHandler)
ticketEngine := herzServer.Group("/ticket")
ticketEngine.GET("", ticket.TicketHandler)
gitEngine := herzServer.Group("/git")
gitEngine.GET("/pull", restart.PullCodeHandler)
gitEngine.GET("/build", restart.BuildBotHandler)
gitEngine.GET("/restart", restart.RestartBotHandler)
gitEngine.GET("/all", restart.AllInOneHandler)
go herzServer.Run()
}