init
This commit is contained in:
53
network/http/web/init.go
Normal file
53
network/http/web/init.go
Normal 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"})
|
||||
}
|
||||
Reference in New Issue
Block a user