online-order/database/seeds/fillTables.go
2023-11-01 20:12:26 +03:30

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)
}
}