diff --git a/packages/Webkul/API/Http/Controllers/Shop/CategoryController.php b/packages/Webkul/API/Http/Controllers/Shop/CategoryController.php new file mode 100755 index 000000000..89b737dd5 --- /dev/null +++ b/packages/Webkul/API/Http/Controllers/Shop/CategoryController.php @@ -0,0 +1,47 @@ + + * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) + */ +class CategoryController extends Controller +{ + /** + * CategoryRepository object + * + * @var array + */ + protected $categoryRepository; + + /** + * Create a new controller instance. + * + * @param Webkul\Category\Repositories\CategoryRepository $categoryRepository + * @return void + */ + public function __construct(CategoryRepository $categoryRepository) + { + $this->categoryRepository = $categoryRepository; + } + + /** + * Returns a listing of the resource. + * + * @return \Illuminate\Http\Response + */ + public function index() + { + return CategoryResource::collection( + $this->categoryRepository->getVisibleCategoryTree(request()->input('parent_id')) + ); + } +} diff --git a/packages/Webkul/API/Http/Controllers/Shop/ResourceController.php b/packages/Webkul/API/Http/Controllers/Shop/ResourceController.php index 4ef6c8817..cc2ee1116 100644 --- a/packages/Webkul/API/Http/Controllers/Shop/ResourceController.php +++ b/packages/Webkul/API/Http/Controllers/Shop/ResourceController.php @@ -48,13 +48,19 @@ class ResourceController extends Controller */ public function index() { - $results = $this->repository->scopeQuery(function($query) { - foreach (request()->except(['page', 'limit']) as $input => $value) { + $query = $this->repository->scopeQuery(function($query) { + foreach (request()->except(['page', 'limit', 'pagination', 'sort', 'order']) as $input => $value) { $query = $query->where($input, $value); } return $query; - })->paginate(request()->input('limit') ?? 10); + }); + + if (! is_null(request()->input('pagination')) && request()->input('pagination')) { + $results = $query->paginate(request()->input('limit') ?? 10); + } else { + $results = $query->get(); + } return $this->_config['resource']::collection($results); } diff --git a/packages/Webkul/API/Http/Resources/Catalog/Category.php b/packages/Webkul/API/Http/Resources/Catalog/Category.php index 7a531428e..cb1e69af8 100644 --- a/packages/Webkul/API/Http/Resources/Catalog/Category.php +++ b/packages/Webkul/API/Http/Resources/Catalog/Category.php @@ -18,6 +18,12 @@ class Category extends JsonResource 'id' => $this->id, 'code' => $this->code, 'name' => $this->name, + 'slug' => $this->slug, + 'description' => $this->description, + 'meta_title' => $this->meta_title, + 'meta_description' => $this->meta_description, + 'meta_keywords' => $this->meta_keywords, + 'status' => $this->status, 'image_url' => $this->image_url, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, diff --git a/packages/Webkul/API/Http/routes.php b/packages/Webkul/API/Http/routes.php index 1b349596c..2af9af50a 100755 --- a/packages/Webkul/API/Http/routes.php +++ b/packages/Webkul/API/Http/routes.php @@ -10,6 +10,8 @@ Route::group(['prefix' => 'api'], function ($router) { 'resource' => 'Webkul\API\Http\Resources\Catalog\Category' ]); + Route::get('descendants-categories', 'CategoryController@index'); + Route::get('categories/{id}', 'ResourceController@get')->defaults('_config', [ 'repository' => 'Webkul\Category\Repositories\CategoryRepository', 'resource' => 'Webkul\API\Http\Resources\Catalog\Category'