Files
go_oxspeak_server/network/http/web/main.go
2025-11-11 02:33:05 +01:00

49 lines
1.1 KiB
Go

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