68 lines
1.8 KiB
Go
68 lines
1.8 KiB
Go
|
package seeds
|
||
|
|
||
|
import (
|
||
|
"log"
|
||
|
"online-order/entity"
|
||
|
repository_product "online-order/repository/product"
|
||
|
repository_product_category "online-order/repository/product_category"
|
||
|
service_product "online-order/usecase/product"
|
||
|
service_product_category "online-order/usecase/product_category"
|
||
|
)
|
||
|
|
||
|
func fetchProductsFromJsonFile() *[]entity.ProductCreateUpdate {
|
||
|
file := CreateFile("database/seeds/resources/products.json")
|
||
|
pl := []entity.ProductCreateUpdate{}
|
||
|
|
||
|
if err := file.ReadJson(&pl); err != nil {
|
||
|
log.Println("on FillProducts an error occured: ", err)
|
||
|
return nil
|
||
|
}
|
||
|
return &pl
|
||
|
}
|
||
|
|
||
|
func fetchProductCategoriesFromJsonFile() *[]entity.ProductCategoryCreateUpdate {
|
||
|
file := CreateFile("database/seeds/resources/categories.json")
|
||
|
pl := []entity.ProductCategoryCreateUpdate{}
|
||
|
if err := file.ReadJson(&pl); err != nil {
|
||
|
log.Println("on FillProducts an error occured: ", err)
|
||
|
return nil
|
||
|
}
|
||
|
return &pl
|
||
|
}
|
||
|
|
||
|
func FillProductCategories(server *entity.Routers) {
|
||
|
productCategories := fetchProductCategoriesFromJsonFile()
|
||
|
|
||
|
activeBusiness := entity.ActiveBusiness{
|
||
|
BusinessID: 1,
|
||
|
DomainID: 1,
|
||
|
Domain: "localhost",
|
||
|
}
|
||
|
|
||
|
productCategoryRepo := repository_product_category.NewProductCategoryClient(server.Database, &activeBusiness)
|
||
|
|
||
|
productCategoryService := service_product_category.NewProductCategoryService(productCategoryRepo)
|
||
|
|
||
|
for _, item := range *productCategories {
|
||
|
productCategoryService.SyncWithSlug(item.Slug, &item)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func FillProducts(server *entity.Routers) {
|
||
|
products := fetchProductsFromJsonFile()
|
||
|
|
||
|
activeBusiness := entity.ActiveBusiness{
|
||
|
BusinessID: 1,
|
||
|
DomainID: 1,
|
||
|
Domain: "localhost",
|
||
|
}
|
||
|
|
||
|
productRepo := repository_product.NewProductClient(server.Database, &activeBusiness)
|
||
|
|
||
|
productService := service_product.NewProductService(productRepo)
|
||
|
|
||
|
for _, item := range *products {
|
||
|
productService.Create(&item)
|
||
|
}
|
||
|
}
|