package web import ( "go_oxspeak_server/database" "go_oxspeak_server/network/http/handler" "go_oxspeak_server/network/http/middleware" "go_oxspeak_server/network/http/web/api" "github.com/gin-gonic/gin" ) func CreateRouter() *gin.Engine { router := gin.Default() // Register middleware router.Use(middleware.CORSMiddleware()) // Create base handler baseHandler := handler.NewHandler(database.DB) // Create specific handler authHandler := NewAuthHandler(baseHandler) serverHandler := api.NewServerHandler(baseHandler) categoryHandler := api.NewCategoryHandler(baseHandler) channelHandler := api.NewChannelHandler(baseHandler) messageHandler := api.NewMessageHandler(baseHandler) authGroup := router.Group("/auth") { authHandler.RegisterRoutes(authGroup) } apiGroup := router.Group("/api") { serverHandler.RegisterRoutes(apiGroup) channelHandler.RegisterRoutes(apiGroup) categoryHandler.RegisterRoutes(apiGroup) messageHandler.RegisterRoutes(apiGroup) } router.GET("/health", healthcheck) return router } func healthcheck(c *gin.Context) { c.JSON(200, gin.H{"status": "ok"}) }