package v1 import ( "net/http" "api-service/internal/handlers" "api-service/internal/middleware" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" ) // RegisterRoutes registers all API routes for version 1 func RegisterRoutes() *gin.Engine { router := gin.New() // Add middleware router.Use(middleware.CORSConfig()) router.Use(middleware.ErrorHandler()) router.Use(gin.Logger()) router.Use(gin.Recovery()) // Swagger UI route router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) // API v1 group v1 := router.Group("/api/v1") { // Health endpoints healthHandler := handlers.NewHealthHandler() v1.GET("/health", healthHandler.GetHealth) v1.GET("/", healthHandler.HelloWorld) // Example endpoints exampleHandler := handlers.NewExampleHandler() v1.GET("/example", exampleHandler.GetExample) v1.POST("/example", exampleHandler.PostExample) // WebSocket endpoint v1.GET("/websocket", WebSocketHandler) } return router } // WebSocketHandler handles WebSocket connections func WebSocketHandler(c *gin.Context) { // This will be implemented with proper WebSocket handling c.JSON(http.StatusOK, gin.H{"message": "WebSocket endpoint"}) }