package routes import ( "net/http" "zardzul/music-index/handlers" "zardzul/music-index/middleware" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" ) func Routes(router *gin.Engine, userHandler *handlers.UserHandler, artistHandler *handlers.ArtistHandler, jwtSecret string) { root := router.Group("/api/v1") { root.GET("/ping", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "pong"}) }) root.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) } user := root.Group("/users") { user.POST("/create", userHandler.CreateUser) user.POST("/login", userHandler.Login) } protectedUser := root.Group("/users") protectedUser.Use(middleware.JWTAuth(jwtSecret)) { protectedUser.GET("/:id", userHandler.GetUsernameByID) } artist := root.Group("/artists") artist.Use(middleware.JWTAuth(jwtSecret)) { artist.GET("/", artistHandler.GetAll) } }