--- 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)) {