61 lines
1.6 KiB
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)
|
|
}
|