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 (
|
import (
|
||||||
"net/http"
|
"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/dto"
|
||||||
"github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/query"
|
"github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/query"
|
||||||
"github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/service"
|
"github.com/Caknoooo/go-gin-clean-starter/modules/warehouse/service"
|
||||||
|
|
@ -22,7 +24,9 @@ type WarehouseController interface {
|
||||||
}
|
}
|
||||||
|
|
||||||
type warehouseController struct {
|
type warehouseController struct {
|
||||||
|
userService userservice.UserService
|
||||||
warehouseService service.WarehouseService
|
warehouseService service.WarehouseService
|
||||||
|
roleService roleservice.RoleService
|
||||||
db *gorm.DB
|
db *gorm.DB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -87,8 +91,30 @@ func (w *warehouseController) GetById(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (w *warehouseController) GetAll(ctx *gin.Context) {
|
func (w *warehouseController) GetAll(ctx *gin.Context) {
|
||||||
clientId := ctx.Query("client_id")
|
|
||||||
var filter query.WarehouseFilter
|
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
|
filter.ClientID = clientId
|
||||||
if err := ctx.ShouldBindQuery(&filter); err != nil {
|
if err := ctx.ShouldBindQuery(&filter); err != nil {
|
||||||
res := utils.BuildResponseFailed(dto.MESSAGE_FAILED_GET_WAREHOUSE, err.Error(), 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)
|
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)
|
db := do.MustInvokeNamed[*gorm.DB](i, constants.DB)
|
||||||
return &warehouseController{
|
return &warehouseController{
|
||||||
warehouseService: warehouseService,
|
warehouseService: warehouseService,
|
||||||
|
roleService: roleService,
|
||||||
|
userService: userService,
|
||||||
db: db,
|
db: db,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -96,7 +96,6 @@ import (
|
||||||
inventoryTransactionRepo "github.com/Caknoooo/go-gin-clean-starter/modules/inventory_transaction/repository"
|
inventoryTransactionRepo "github.com/Caknoooo/go-gin-clean-starter/modules/inventory_transaction/repository"
|
||||||
inventoryTransactionService "github.com/Caknoooo/go-gin-clean-starter/modules/inventory_transaction/service"
|
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/controller"
|
||||||
"github.com/Caknoooo/go-gin-clean-starter/modules/user/repository"
|
"github.com/Caknoooo/go-gin-clean-starter/modules/user/repository"
|
||||||
userService "github.com/Caknoooo/go-gin-clean-starter/modules/user/service"
|
userService "github.com/Caknoooo/go-gin-clean-starter/modules/user/service"
|
||||||
|
|
@ -164,7 +163,7 @@ func RegisterDependencies(injector *do.Injector) {
|
||||||
// Service
|
// Service
|
||||||
userServ := userService.NewUserService(userRepository, roleRepository, warehouseRepository, refreshTokenRepository, jwtService, db)
|
userServ := userService.NewUserService(userRepository, roleRepository, warehouseRepository, refreshTokenRepository, jwtService, db)
|
||||||
productService := productService.NewProductService(productRepository, 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)
|
menuSvc := menuService.NewMenuService(menuRepository, jwtService, db)
|
||||||
maintenanceGroupServ := maintGroupService.NewMaintenanceGroupService(maintenanceGroupRepository, maintenanceGroupRoleRepository, maintenanceGroupRoleUserRepository, db)
|
maintenanceGroupServ := maintGroupService.NewMaintenanceGroupService(maintenanceGroupRepository, maintenanceGroupRoleRepository, maintenanceGroupRoleUserRepository, db)
|
||||||
clientServ := clientService.NewClientService(clientRepository, db)
|
clientServ := clientService.NewClientService(clientRepository, db)
|
||||||
|
|
@ -202,7 +201,7 @@ func RegisterDependencies(injector *do.Injector) {
|
||||||
)
|
)
|
||||||
do.Provide(
|
do.Provide(
|
||||||
injector, func(i *do.Injector) (roleController.RoleController, error) {
|
injector, func(i *do.Injector) (roleController.RoleController, error) {
|
||||||
return roleController.NewRoleController(i, roleService), nil
|
return roleController.NewRoleController(i, roleServ), nil
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
do.Provide(
|
do.Provide(
|
||||||
|
|
@ -247,7 +246,7 @@ func RegisterDependencies(injector *do.Injector) {
|
||||||
)
|
)
|
||||||
do.Provide(
|
do.Provide(
|
||||||
injector, func(i *do.Injector) (warehouseController.WarehouseController, error) {
|
injector, func(i *do.Injector) (warehouseController.WarehouseController, error) {
|
||||||
return warehouseController.NewWarehouseController(i, warehouseServ), nil
|
return warehouseController.NewWarehouseController(i, warehouseServ, roleServ, userServ), nil
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
do.Provide(
|
do.Provide(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue