From 1906eb1cc9382a6ef818e1df63ebf0c265d9108f Mon Sep 17 00:00:00 2001 From: merdan Date: Wed, 13 Apr 2022 20:28:39 +0500 Subject: [PATCH] vendors --- .../Sarga/API/Http/Controllers/Vendors.php | 34 +++++++++++++------ .../Sarga/API/Http/Resources/Core/Source.php | 28 +++++++++++++++ 2 files changed, 51 insertions(+), 11 deletions(-) create mode 100644 packages/Sarga/API/Http/Resources/Core/Source.php diff --git a/packages/Sarga/API/Http/Controllers/Vendors.php b/packages/Sarga/API/Http/Controllers/Vendors.php index 7eb3e4b13..75340be53 100644 --- a/packages/Sarga/API/Http/Controllers/Vendors.php +++ b/packages/Sarga/API/Http/Controllers/Vendors.php @@ -4,6 +4,7 @@ namespace Sarga\API\Http\Controllers; use Sarga\API\Http\Resources\Catalog\Brand; use Sarga\API\Http\Resources\Catalog\Product as ProductResource; +use Sarga\API\Http\Resources\Core\Source; use Sarga\API\Http\Resources\Core\Vendor; use Sarga\Shop\Repositories\ProductRepository; use Sarga\Brand\Repositories\BrandRepository; @@ -28,17 +29,28 @@ class Vendors extends Controller // ->leftJoin('seller_categories','marketplace_sellers.id','=','seller_categories.seller_id') ->get(); - $mainCats = $vendors->first()->categories->first(); - $cat_ids = json_decode($mainCats->categories,true); - $categories = $this->categoryRepository->whereIn('id',$cat_ids) - ->select('id','image','position','parent_id','display_mode','category_icon_path') - ->where('status',1) - ->with(['children'=> function($q){ - $q->orderBy('position','asc'); - }]) - ->orderBy('position','asc') - ->get(); - return $categories; + foreach ($vendors as $vendor){ + if($vendor->categories && $mainCats = $vendor->categories->first()){ + $cat_ids = json_decode($mainCats->categories,true); +// $vendor->test = Category::collection($this->categoryRepository->getVisibleCategoryTree($cat_ids[0])); + $vendor->main_categories = $this->categoryRepository->whereIn('id',$cat_ids) + ->select('id','image','position','parent_id','display_mode','category_icon_path') + ->where('status',1) + ->with(['children'=> function($q){ + $q->orderBy('position','asc'); + }]) + ->orderBy('position','asc') + ->get(); +// if($vendor->main_categories->count()){ +// foreach($vendor->main_categories as $category){ +// $category->filters = app(ProductFlatRepository::class)->getProductsRelatedFilterableAttributes($category); +// } +// } + + } + } +// return $vendors; + return Source::collection($vendors); } public function index() diff --git a/packages/Sarga/API/Http/Resources/Core/Source.php b/packages/Sarga/API/Http/Resources/Core/Source.php new file mode 100644 index 000000000..3de3595e1 --- /dev/null +++ b/packages/Sarga/API/Http/Resources/Core/Source.php @@ -0,0 +1,28 @@ + $this->id, + 'shop_title' => $this->shop_title, + 'logo' => $this->logo_url, + 'banner' => $this->banner_url, + $this->mergeWhen(!empty($this->main_categories) && $this->main_categories->count(),[ + 'categories' => VendorCategory::collection($this->main_categories) + ]) + + ]; + } +} \ No newline at end of file