initial commit
This commit is contained in:
74
facade/container.go
Normal file
74
facade/container.go
Normal file
@@ -0,0 +1,74 @@
|
||||
package facade
|
||||
|
||||
import (
|
||||
"nearle/controllers"
|
||||
"nearle/repositories"
|
||||
"nearle/services"
|
||||
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
type Facade struct {
|
||||
UserController *controllers.UserController
|
||||
ProductController *controllers.ProductController
|
||||
OrderController *controllers.OrderController
|
||||
DeliveriesController *controllers.DeliveriesController
|
||||
UtilsController *controllers.UtilsController
|
||||
TenantController *controllers.TenantController
|
||||
PartnerController *controllers.PartnerController
|
||||
CustomerController *controllers.CustomerController
|
||||
}
|
||||
|
||||
func NewFacade(db *gorm.DB) *Facade {
|
||||
|
||||
// User Module
|
||||
userRepo := repositories.NewUserRepository(db)
|
||||
userService := services.NewUserService(userRepo)
|
||||
userController := controllers.NewUserController(userService)
|
||||
|
||||
// Product Module
|
||||
productRepo := repositories.NewProductRepository(db)
|
||||
productService := services.NewProductService(productRepo)
|
||||
productController := controllers.NewProductController(productService)
|
||||
|
||||
// Order Module
|
||||
orderRepo := repositories.NewOrderRepository(db)
|
||||
orderService := services.NewOrderService(orderRepo)
|
||||
orderController := controllers.NewOrderController(orderService)
|
||||
|
||||
// Deliveries Module
|
||||
deliveriesRepo := repositories.NewDeliveriesRepository(db)
|
||||
deliveriesService := services.NewDeliveriesService(deliveriesRepo)
|
||||
deliveriesController := controllers.NewDeliveriesController(deliveriesService)
|
||||
|
||||
// Utils Module
|
||||
utilsRepo := repositories.NewUtilsRepository(db)
|
||||
utilsService := services.NewUtilsService(utilsRepo)
|
||||
utilsController := controllers.NewUtilsController(utilsService)
|
||||
|
||||
//Tenant Module
|
||||
tenantRepo := repositories.NewTenantRepository(db)
|
||||
tenantService := services.NewTenantService(tenantRepo)
|
||||
tenantController := controllers.NewTenantController(tenantService)
|
||||
|
||||
//Partner Module
|
||||
partnerRepo := repositories.NewPartnerRepository(db)
|
||||
partnerService := services.NewPartnerService(partnerRepo)
|
||||
partnerController := controllers.NewPartnerController(partnerService)
|
||||
|
||||
//Customer Module
|
||||
customerRepo := repositories.NewCustomerRepository(db)
|
||||
customerService := services.NewCustomerService(customerRepo)
|
||||
customerController := controllers.NewCustomerController(customerService)
|
||||
|
||||
return &Facade{
|
||||
UserController: userController,
|
||||
ProductController: productController,
|
||||
OrderController: orderController,
|
||||
DeliveriesController: deliveriesController,
|
||||
UtilsController: utilsController,
|
||||
TenantController: tenantController,
|
||||
PartnerController: partnerController,
|
||||
CustomerController: customerController,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user