package routes import ( "easywish/internal/controllers" "github.com/gin-gonic/gin" ) func NewRouter(engine *gin.Engine, groups []RouteGroup) *gin.Engine { apiGroup := engine.Group("/api") for _, group := range groups { subgroup := apiGroup.Group(group.BasePath) subgroup.Use(group.Middleware...) group.Router.RegisterRoutes(subgroup) } return engine } type RouteGroup struct { BasePath string Middleware []gin.HandlerFunc Router controllers.Router } func NewRouteGroups( authController controllers.AuthController, serviceController controllers.ServiceController, ) []RouteGroup { return []RouteGroup{ { BasePath: "/auth", Router: authController, }, { BasePath: "/service", Router: serviceController, }, } }