/home/techb158/immovalet.com/platform/plugins/blog/src/Http/Controllers/API
Edit: /home/techb158/immovalet.com/platform/plugins/blog/src/Http/Controllers/API/CategoryController.php (3023B)
categoryRepository = $categoryRepository;
}
/**
* List categories
*
* @group Blog
*
* @param Request $request
* @param BaseHttpResponse $response
* @return BaseHttpResponse
*/
public function index(Request $request, BaseHttpResponse $response)
{
$data = $this->categoryRepository
->advancedGet([
'with' => ['slugable'],
'condition' => ['status' => BaseStatusEnum::PUBLISHED],
'paginate' => [
'per_page' => (int)$request->input('per_page', 10),
'current_paged' => (int)$request->input('page', 1),
],
]);
return $response
->setData(ListCategoryResource::collection($data))
->toApiResponse();
}
/**
* Filters categories
*
* @group Blog
*
* @param Request $request
* @param BaseHttpResponse $response
* @return BaseHttpResponse
*/
public function getFilters(Request $request, BaseHttpResponse $response)
{
$filters = FilterCategory::setFilters($request->input());
$data = $this->categoryRepository->getFilters($filters);
return $response
->setData(CategoryResource::collection($data))
->toApiResponse();
}
/**
* Get category by slug
*
* @group Blog
* @queryParam slug Find by slug of category.
* @param string $slug
* @param BaseHttpResponse $response
* @return BaseHttpResponse|JsonResponse
*/
public function findBySlug(string $slug, BaseHttpResponse $response)
{
$slug = SlugHelper::getSlug($slug, SlugHelper::getPrefix(Category::class), Category::class);
if (!$slug) {
return $response->setError()->setCode(404)->setMessage('Not found');
}
$category = $this->categoryRepository->getCategoryById($slug->reference_id);
if (!$category) {
return $response->setError()->setCode(404)->setMessage('Not found');
}
return $response
->setData(new ListCategoryResource($category))
->toApiResponse();
}
}