From 2f7d088f990b7e6eba68f0474cefd9119d2057b5 Mon Sep 17 00:00:00 2001 From: merdiano Date: Thu, 30 Dec 2021 09:31:36 +0500 Subject: [PATCH] categories with parent id --- .../API/Http/Resources/Catalog/Category.php | 9 +++++++- packages/Sarga/API/Http/routes.php | 8 ++++++- .../Admin/src/Routes/marketplace-routes.php | 23 ++++++++++--------- 3 files changed, 27 insertions(+), 13 deletions(-) diff --git a/packages/Sarga/API/Http/Resources/Catalog/Category.php b/packages/Sarga/API/Http/Resources/Catalog/Category.php index ab55ace6c..f418fdcbc 100644 --- a/packages/Sarga/API/Http/Resources/Catalog/Category.php +++ b/packages/Sarga/API/Http/Resources/Catalog/Category.php @@ -17,6 +17,7 @@ class Category extends JsonResource { return [ 'id' => $this->id, + 'parent_id' => $this->parent_id, // 'code' => $this->code, 'name' => $this->name, 'slug' => $this->slug, @@ -32,7 +33,13 @@ class Category extends JsonResource // 'additional' => is_array($this->resource->additional) // ? $this->resource->additional // : json_decode($this->resource->additional, true), - 'children' => Category::collection($this->children) + $this->mergeWhen($this->showChildren(), [ + 'children' => Category::collection($this->children), + ]) ]; } + + private function showChildren(){ + return request()->route()->getName() === 'api.descendant-categories'; + } } diff --git a/packages/Sarga/API/Http/routes.php b/packages/Sarga/API/Http/routes.php index 41b2a6fc1..20c8af17b 100644 --- a/packages/Sarga/API/Http/routes.php +++ b/packages/Sarga/API/Http/routes.php @@ -6,9 +6,11 @@ use Sarga\API\Http\Controllers\Channels; use Sarga\API\Http\Controllers\IntegrationController; use Sarga\API\Http\Controllers\Vendors; use Sarga\API\Http\Controllers\Products; +use Sarga\Shop\Repositories\CategoryRepository; use Webkul\API\Http\Controllers\Shop\ResourceController; use Webkul\Attribute\Repositories\AttributeOptionRepository; use Sarga\API\Http\Resources\Catalog\AttributeOption; +use Sarga\API\Http\Resources\Catalog\Category; Route::group(['prefix' => 'api'], function ($router) { Route::group(['middleware' => ['locale', 'currency']], function ($router) { @@ -19,9 +21,13 @@ Route::group(['prefix' => 'api'], function ($router) { Route::get('vendors',[Vendors::class,'index']); //category routes - Route::get('descendant-categories', [Categories::class, 'index']); + Route::get('descendant-categories', [Categories::class, 'index'])->name('api.descendant-categories'); Route::get('category-brands/{id}', [Categories::class, 'brands']); + Route::get('categories', [ResourceController::class, 'index'])->defaults('_config', [ + 'repository' => CategoryRepository::class, + 'resource' => Category::class, + ])->name('api.categories'); //attributes by code Route::get('attribute-options', [ResourceController::class, 'index'])->defaults('_config', [ 'repository' => AttributeOptionRepository::class, diff --git a/packages/Sarga/Admin/src/Routes/marketplace-routes.php b/packages/Sarga/Admin/src/Routes/marketplace-routes.php index 3f1144b74..c120bbce4 100644 --- a/packages/Sarga/Admin/src/Routes/marketplace-routes.php +++ b/packages/Sarga/Admin/src/Routes/marketplace-routes.php @@ -11,20 +11,21 @@ use Webkul\Product\Http\Controllers\ProductController; * marketplace routes. */ Route::group(['middleware' => ['web', 'admin', 'admin_locale'], 'prefix' => config('app.admin_url')], function () { - Route::prefix('marketplace/seller-categories')->group(function () { + Route::prefix('marketplace')->group(function () { - Route::get('/', 'Webkul\Marketplace\Http\Controllers\Admin\SellerCategoryController@index')->defaults('_config', [ - 'view' => 'sarga_admin::sellers.category.index' - ])->name('admin.marketplace.seller.category.index'); + Route::prefix('seller-categories')->group(function () { + Route::get('/', 'Webkul\Marketplace\Http\Controllers\Admin\SellerCategoryController@index')->defaults('_config', [ + 'view' => 'sarga_admin::sellers.category.index' + ])->name('admin.marketplace.seller.category.index'); - Route::get('create', [SellerCategoryController::class, 'create'])->defaults('_config', [ - 'view' => 'sarga_admin::sellers.category.create', - ])->name('admin.marketplace.seller.category.create'); - - Route::get('edit/{id}', 'Webkul\Marketplace\Http\Controllers\Admin\SellerCategoryController@edit')->defaults('_config', [ - 'view' => 'sarga_admin::sellers.category.edit', - ])->name('admin.marketplace.seller.category.edit'); + Route::get('create', [SellerCategoryController::class, 'create'])->defaults('_config', [ + 'view' => 'sarga_admin::sellers.category.create', + ])->name('admin.marketplace.seller.category.create'); + Route::get('edit/{id}', 'Webkul\Marketplace\Http\Controllers\Admin\SellerCategoryController@edit')->defaults('_config', [ + 'view' => 'sarga_admin::sellers.category.edit', + ])->name('admin.marketplace.seller.category.edit'); + }); // seller profile routes start here Route::get('sellers/profile/edit/{id}', 'Webkul\Marketplace\Http\Controllers\Admin\SellerController@editProfile')->defaults('_config', [ 'view' => 'marketplace::admin.sellers.edit'