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) }