Produkte und Properties im Server
This commit is contained in:
@@ -15,20 +15,30 @@ import (
|
||||
)
|
||||
|
||||
type HttpServer struct {
|
||||
config *viper.Viper
|
||||
router *gin.Engine
|
||||
dbHandler *sql.DB
|
||||
valueController *controller.ValueController
|
||||
config *viper.Viper
|
||||
router *gin.Engine
|
||||
dbHandler *sql.DB
|
||||
valueController *controller.ValueController
|
||||
productGroupController *controller.ProductGroupController
|
||||
productController *controller.ProductController
|
||||
}
|
||||
|
||||
func InitHttpServer(config *viper.Viper, dbHandler *sql.DB) HttpServer {
|
||||
|
||||
// repository initialisation:
|
||||
valueRepository := repositories.NewValueRepository(dbHandler)
|
||||
productGroupRepository := repositories.NewProductGroupRepository(dbHandler, valueRepository)
|
||||
productRepository := repositories.NewProductRepository(dbHandler, productGroupRepository, valueRepository)
|
||||
|
||||
// service initialisation:
|
||||
valueService := services.NewValueService(valueRepository)
|
||||
productGroupService := services.NewProductGroupService(productGroupRepository)
|
||||
productService := services.NewProductService(productRepository)
|
||||
|
||||
// controller initialisation:
|
||||
valueController := controller.NewValueController(valueService)
|
||||
productGroupController := controller.NewProductGroupController(productGroupService, valueService)
|
||||
productController := controller.NewProductController(productService, productGroupService, valueService)
|
||||
|
||||
// Service API
|
||||
router := gin.Default()
|
||||
@@ -55,13 +65,34 @@ func InitHttpServer(config *viper.Viper, dbHandler *sql.DB) HttpServer {
|
||||
router.GET("/getValue/:id", valueController.GetValue) // get Value by id
|
||||
|
||||
// Product centric routing
|
||||
// ProductGroup
|
||||
router.POST("/createProductGroup", productGroupController.CreateProductGroup) // create ProductGroup
|
||||
router.PUT("/updateProductGroup", productGroupController.UpdateProductGroup) // update ProductGroup
|
||||
router.DELETE("/deleteProductGroup/:id", productGroupController.DeleteProductGroup) // delete ProductGroup
|
||||
router.GET("/getProductGroup/:id", productGroupController.GetProductGroup) // get ProductGroup by id
|
||||
router.GET("/getProductGroupsByParentId/:parentId", productGroupController.GetProductGroupsByParentId) // get all ProductGroups by parent ID
|
||||
router.DELETE("/deleteProductFromProductGroupId/:productId", productGroupController.DeleteProductFromProductGroupId) // delete Product from ProductGroup by ID
|
||||
router.POST("/getPropertiesFromProductGroupId/:productGroupId", productGroupController.GetPropertiesFromProductGroupId) // get Properties from ProductGroup by ID
|
||||
router.DELETE("/deletePropertyFromProductGroupId/:propertyId/:productGroupId", productGroupController.DeletePropertyFromProductGroupId) // delete Property from ProductGroup by ID
|
||||
router.POST("/createPropertyToProductGroupId/:propertyTypeId/:productGroupId", productGroupController.CreatePropertyToProductGroupId) // add Property to ProductGroup by ID
|
||||
|
||||
// Product
|
||||
router.POST("/createProduct", productController.CreateProduct) // create Product
|
||||
router.PUT("/updateProduct", productController.UpdateProduct) // update Product
|
||||
router.DELETE("/deleteProduct/:id", productController.DeleteProduct) // delete Product
|
||||
router.GET("/getProduct/:id", productController.GetProduct) // get Product by id
|
||||
router.GET("/getProductsByGroupId/:groupId", productController.GetProductsByGroupId) // get all Products by group ID
|
||||
router.POST("/addPropertyToProductId/:productId", productController.AddPropertyToProductId) // add Property to Product by ID
|
||||
router.DELETE("/deletePropertyFromProductId/:productId", productController.DeletePropertyFromProductId) // delete Property from Product by ID
|
||||
|
||||
// server
|
||||
return HttpServer{
|
||||
config: config,
|
||||
router: router,
|
||||
dbHandler: dbHandler,
|
||||
valueController: valueController,
|
||||
config: config,
|
||||
router: router,
|
||||
dbHandler: dbHandler,
|
||||
valueController: valueController,
|
||||
productGroupController: productGroupController,
|
||||
productController: productController,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user