This commit is contained in:
2025-11-17 01:06:03 +01:00
parent bf78faba28
commit 4e76ee468b
16 changed files with 617 additions and 42 deletions

53
network/http/web/init.go Normal file
View File

@@ -0,0 +1,53 @@
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.Group("/server"))
channelHandler.RegisterRoutes(apiGroup.Group("/channel"))
categoryHandler.RegisterRoutes(apiGroup.Group("/category"))
messageHandler.RegisterRoutes(apiGroup.Group("/message"))
}
router.GET("/health", healthcheck)
// Expose OpenAPI specification (static file placed at repository root)
router.GET("/openapi.yaml", func(c *gin.Context) {
c.File("openapi.yaml")
})
return router
}
func healthcheck(c *gin.Context) {
c.JSON(200, gin.H{"status": "ok"})
}