feat: enhance WarehouseController with user and role services for improved access control
Deploy Application / deploy (push) Successful in 23s
Details
Deploy Application / deploy (push) Successful in 23s
Details
This commit is contained in:
parent
1b537183ac
commit
99013ab88e
|
|
@ -3,6 +3,8 @@ package controller
|
|||
import (
|
||||
"net/http"
|
||||
|
||||
roleservice "github.com/Caknoooo/go-gin-clean-starter/modules/role/service"
|
||||
userservice "github.com/Caknoooo/go-gin-clean-starter/modules/user/service"
|
||||
"github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/dto"
|
||||
"github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/query"
|
||||
"github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/service"
|
||||
|
|
@ -22,7 +24,9 @@ type WarehouseController interface {
|
|||
}
|
||||
|
||||
type warehouseController struct {
|
||||
userService userservice.UserService
|
||||
warehouseService service.WarehouseService
|
||||
roleService roleservice.RoleService
|
||||
db *gorm.DB
|
||||
}
|
||||
|
||||
|
|
@ -87,8 +91,30 @@ func (w *warehouseController) GetById(ctx *gin.Context) {
|
|||
}
|
||||
|
||||
func (w *warehouseController) GetAll(ctx *gin.Context) {
|
||||
clientId := ctx.Query("client_id")
|
||||
var filter query.WarehouseFilter
|
||||
var clientId string
|
||||
|
||||
userId := ctx.MustGet("user_id").(string)
|
||||
user, err := w.userService.GetUserById(ctx, userId)
|
||||
if err != nil {
|
||||
res := utils.BuildResponseFailed(dto.MESSAGE_FAILED_GET_WAREHOUSE, err.Error(), nil)
|
||||
ctx.JSON(http.StatusNotFound, res)
|
||||
return
|
||||
}
|
||||
|
||||
if user.Name != constants.SUPERADMIN {
|
||||
clientId = ctx.MustGet("client_id").(string)
|
||||
} else {
|
||||
clientId = ctx.Query("client_id")
|
||||
}
|
||||
// roleId := ctx.MustGet("role_id").(string)
|
||||
// role, err := w.warehouseService.GetRoleById(ctx, roleId)
|
||||
// if err != nil {
|
||||
// res := utils.BuildResponseFailed(dto.MESSAGE_FAILED_GET_ROLE, err.Error(), nil)
|
||||
// ctx.JSON(http.StatusNotFound, res)
|
||||
// return
|
||||
// }
|
||||
|
||||
filter.ClientID = clientId
|
||||
if err := ctx.ShouldBindQuery(&filter); err != nil {
|
||||
res := utils.BuildResponseFailed(dto.MESSAGE_FAILED_GET_WAREHOUSE, err.Error(), nil)
|
||||
|
|
@ -125,10 +151,12 @@ func (w *warehouseController) GetAll(ctx *gin.Context) {
|
|||
ctx.JSON(http.StatusOK, res)
|
||||
}
|
||||
|
||||
func NewWarehouseController(i *do.Injector, warehouseService service.WarehouseService) WarehouseController {
|
||||
func NewWarehouseController(i *do.Injector, warehouseService service.WarehouseService, roleService roleservice.RoleService, userService userservice.UserService) WarehouseController {
|
||||
db := do.MustInvokeNamed[*gorm.DB](i, constants.DB)
|
||||
return &warehouseController{
|
||||
warehouseService: warehouseService,
|
||||
roleService: roleService,
|
||||
userService: userService,
|
||||
db: db,
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,6 @@ import (
|
|||
inventoryTransactionRepo "github.com/Caknoooo/go-gin-clean-starter/modules/inventory_transaction/repository"
|
||||
inventoryTransactionService "github.com/Caknoooo/go-gin-clean-starter/modules/inventory_transaction/service"
|
||||
|
||||
|
||||
"github.com/Caknoooo/go-gin-clean-starter/modules/user/controller"
|
||||
"github.com/Caknoooo/go-gin-clean-starter/modules/user/repository"
|
||||
userService "github.com/Caknoooo/go-gin-clean-starter/modules/user/service"
|
||||
|
|
@ -164,7 +163,7 @@ func RegisterDependencies(injector *do.Injector) {
|
|||
// Service
|
||||
userServ := userService.NewUserService(userRepository, roleRepository, warehouseRepository, refreshTokenRepository, jwtService, db)
|
||||
productService := productService.NewProductService(productRepository, db)
|
||||
roleService := roleService.NewRoleService(roleRepository, refreshTokenRepository, jwtService, userServ, db)
|
||||
roleServ := roleService.NewRoleService(roleRepository, refreshTokenRepository, jwtService, userServ, db)
|
||||
menuSvc := menuService.NewMenuService(menuRepository, jwtService, db)
|
||||
maintenanceGroupServ := maintGroupService.NewMaintenanceGroupService(maintenanceGroupRepository, maintenanceGroupRoleRepository, maintenanceGroupRoleUserRepository, db)
|
||||
clientServ := clientService.NewClientService(clientRepository, db)
|
||||
|
|
@ -202,7 +201,7 @@ func RegisterDependencies(injector *do.Injector) {
|
|||
)
|
||||
do.Provide(
|
||||
injector, func(i *do.Injector) (roleController.RoleController, error) {
|
||||
return roleController.NewRoleController(i, roleService), nil
|
||||
return roleController.NewRoleController(i, roleServ), nil
|
||||
},
|
||||
)
|
||||
do.Provide(
|
||||
|
|
@ -247,7 +246,7 @@ func RegisterDependencies(injector *do.Injector) {
|
|||
)
|
||||
do.Provide(
|
||||
injector, func(i *do.Injector) (warehouseController.WarehouseController, error) {
|
||||
return warehouseController.NewWarehouseController(i, warehouseServ), nil
|
||||
return warehouseController.NewWarehouseController(i, warehouseServ, roleServ, userServ), nil
|
||||
},
|
||||
)
|
||||
do.Provide(
|
||||
|
|
|
|||
Loading…
Reference in New Issue