40 lines
2.1 KiB
Go
40 lines
2.1 KiB
Go
package user
|
|
|
|
import (
|
|
"github.com/Caknoooo/go-gin-clean-starter/middlewares"
|
|
"github.com/Caknoooo/go-gin-clean-starter/modules/auth/service"
|
|
"github.com/Caknoooo/go-gin-clean-starter/modules/user/controller"
|
|
"github.com/Caknoooo/go-gin-clean-starter/pkg/constants"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/samber/do"
|
|
)
|
|
|
|
func RegisterRoutes(server *gin.Engine, injector *do.Injector) {
|
|
userController := do.MustInvoke[controller.UserController](injector)
|
|
jwtService := do.MustInvokeNamed[service.JWTService](injector, constants.JWTService)
|
|
|
|
userRoutes := server.Group("/api/v1/users")
|
|
{
|
|
userRoutes.POST("", middlewares.Authenticate(jwtService), userController.Create)
|
|
// userRoutes.POST("/login", userController.Login)
|
|
// userRoutes.POST("/verify-email", userController.VerifyEmail)
|
|
userRoutes.GET("", middlewares.Authenticate(jwtService), userController.GetAllUser)
|
|
userRoutes.GET("/me", middlewares.Authenticate(jwtService), userController.Me)
|
|
userRoutes.GET("/:id", middlewares.Authenticate(jwtService), userController.GetUserById)
|
|
userRoutes.PUT("/:id", middlewares.Authenticate(jwtService), userController.Update)
|
|
userRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), userController.Delete)
|
|
userRoutes.POST("/send-verification-email", userController.SendVerificationEmail)
|
|
userRoutes.POST("/refresh", middlewares.Authenticate(jwtService), userController.Refresh)
|
|
// Switch role & warehouse
|
|
userRoutes.POST("/:id/switch-role", middlewares.Authenticate(jwtService), userController.SwitchRole)
|
|
userRoutes.POST("/:id/switch-warehouse", middlewares.Authenticate(jwtService), userController.SwitchWarehouse)
|
|
|
|
// user warehouse routes
|
|
|
|
userRoutes.GET("/:id/warehouses", middlewares.Authenticate(jwtService), userController.GetUserWarehouses)
|
|
userRoutes.POST("/:id/warehouses", middlewares.Authenticate(jwtService), userController.AddUserWarehouse)
|
|
userRoutes.PUT("/:id/warehouses", middlewares.Authenticate(jwtService), userController.ReplaceUserWarehouses)
|
|
userRoutes.DELETE("/:id/warehouses/:warehouseId", middlewares.Authenticate(jwtService), userController.RemoveUserWarehouse)
|
|
}
|
|
}
|