41 lines
1005 B
Go
41 lines
1005 B
Go
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)
|
|
artist.GET("/:id", artistHandler.GetByID)
|
|
}
|
|
}
|