diff -r 4a3899b6a7ed -r 766af1228b05 server/src/app/Http/Controllers/Api/DocumentController.php --- a/server/src/app/Http/Controllers/Api/DocumentController.php Sun Oct 16 22:23:31 2016 +0530 +++ b/server/src/app/Http/Controllers/Api/DocumentController.php Sun Oct 16 23:19:57 2016 +0530 @@ -9,6 +9,7 @@ use CorpusParole\Http\Controllers\Controller; use CorpusParole\Repositories\DocumentRepository; use CorpusParole\Services\TranscriptManager; +use CorpusParole\Libraries\Filters\CorpusFilterManager; class DocumentController extends Controller { @@ -25,17 +26,27 @@ * * @return Response */ - public function index() + public function index(Request $request) { - $paginator = $this->documentRepository->paginateAll(); + $perPage = intval($request->input('perpage', config('corpusparole.documents_per_page'))); + + $filters = []; + $languages = $request->input('language', []); + if(!empty($languages)) { + $filters['language'] = CorpusFilterManager::prepareLanguages($languages); + } + $sort = $request->input('sort', null); + + $paginator = $this->documentRepository->paginate($filters, $perPage, config('corpusparole.pagination_page_param'), null, $sort); + $res = $paginator->toArray(); if(array_key_exists('data', $res)) { $documents = $res['data']; unset($res['data']); - $res['documents'] = $documents; - //$res['documents'] = $this->documentRepository->resolveLexvo($documents); + } else { + $documents = []; } - return response()->json($res); + return response()->json([ 'documents' => $documents, 'meta' => $res]); } /** @@ -67,7 +78,7 @@ */ public function show(Request $request, $id) { - $id= urldecode($id); + $id = urldecode($id); $short = filter_var($request->input('short', false), FILTER_VALIDATE_BOOLEAN); $doc = $this->documentRepository->get($id, $short); if(is_null($doc)) {