/** * Display a listing of the resource. * * @return Response */ public function index(Request $request) { $type = $request->get('type'); if (empty($type)) { $type = 'list'; } switch ($type) { case 'popular': $tags = $this->questionService->getTagsPopular($request->get('page_size')); $page = (int) Paginator::resolveCurrentPage(); if (empty($page)) { $page = 1; } if ($page !== $tags->currentPage()) { return Response::json(['error' => 'not found'], 404, [], JSON_NUMERIC_CHECK); } $result = $tags->items(); break; case 'search': $result = $this->questionService->getTags($request->get('page_size')); break; case 'list': $tags = $this->questionService->getTagsPopular($request->get('page_size'), $request->get('search')); $page = (int) Paginator::resolveCurrentPage(); if (empty($page)) { $page = 1; } if ($page !== $tags->currentPage()) { return Response::json(['error' => 'not found'], 404, [], JSON_NUMERIC_CHECK); } $result = [['total_entries' => $tags->total(), 'currentPage' => $tags->currentPage()], $tags->items()]; break; default: $result = []; } return Response::json($result, 200, [], JSON_NUMERIC_CHECK); }