Files
warehouse-management-BE/internal/routers/router.go
2026-05-08 15:26:31 +07:00

64 lines
2.0 KiB
Go

package routers
import (
"os"
"wm-backend/configs/constants"
_ "wm-backend/docs/swagger"
"wm-backend/internal/middlewares"
"wm-backend/internal/services"
"wm-backend/pkg/utils"
"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
)
func NewRouter() *gin.Engine {
nodeEnv := os.Getenv("ENV")
if nodeEnv != constants.DevEnvironment {
gin.SetMode(gin.ReleaseMode)
}
r := gin.Default()
r.Use(middlewares.LoggingMiddleware())
v1 := r.Group(constants.API_VERSION_1)
{
auth := v1.Group(constants.API_GROUP_AUTH)
{
auth.POST(constants.API_PATH_AUTH_REGISTER, utils.AsyncHandler(services.Register))
auth.POST(constants.API_PATH_AUTH_LOGIN, utils.AsyncHandler(services.Login))
}
warehouse := v1.Group(constants.API_GROUP_WAREHOUSE)
{
warehouse.GET("", utils.AsyncHandler(services.WareHouseList))
warehouse.GET("/:id", utils.AsyncHandler(services.WareHouseGetByID))
warehouse.POST("", utils.AsyncHandler(services.WareHouseCreate))
warehouse.PUT("/:id", utils.AsyncHandler(services.WareHouseUpdate))
warehouse.DELETE("/:id", utils.AsyncHandler(services.WareHouseDelete))
}
room := v1.Group(constants.API_GROUP_ROOM)
{
room.GET("", utils.AsyncHandler(services.RoomList))
room.GET("/:id", utils.AsyncHandler(services.RoomGetByID))
room.POST("", utils.AsyncHandler(services.RoomCreate))
room.PUT("/:id", utils.AsyncHandler(services.RoomUpdate))
room.DELETE("/:id", utils.AsyncHandler(services.RoomDelete))
}
cabinet := v1.Group(constants.API_GROUP_CABINET)
{
cabinet.GET("", utils.AsyncHandler(services.CabinetList))
cabinet.GET("/:id", utils.AsyncHandler(services.CabinetGetByID))
cabinet.POST("", utils.AsyncHandler(services.CabinetCreate))
cabinet.PUT("/:id", utils.AsyncHandler(services.CabinetUpdate))
cabinet.DELETE("/:id", utils.AsyncHandler(services.CabinetDelete))
}
}
r.GET(constants.API_PATH_PING, services.PingHandler)
r.GET(constants.API_PATH_DOCS, ginSwagger.WrapHandler(swaggerFiles.Handler))
return r
}