qq_bot/webserver/router.go

61 lines
1.6 KiB
Go

package webserver
import (
"time"
"git.lxtend.com/lixiangwuxian/qqbot/handler/auth"
"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/cloudwego/hertz/pkg/route"
"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,
}))
router(herzServer)
go herzServer.Run()
}
func router(s *server.Hertz) {
gitRouter(s.Group("/git"))
healthRouter(s.Group("/health"))
ticketRouter(s.Group("/ticket"))
authRouter(s.Group("/auth"))
}
func gitRouter(g *route.RouterGroup) {
g.GET("/pull", restart.PullCodeHandler)
g.GET("/build", restart.BuildBotHandler)
g.GET("/restart", restart.RestartBotHandler)
g.GET("/all", restart.AllInOneHandler)
}
func healthRouter(g *route.RouterGroup) {
g.GET("/ping", health.HealthHandler)
}
func ticketRouter(g *route.RouterGroup) {
g.GET("", ticket.TicketHandler)
}
func authRouter(g *route.RouterGroup) {
g.GET("/acquire_token", auth.AcquireTokenHandler)
g.GET("/login", auth.LoginHandler)
}