server/src/app/Http/Controllers/Api/DocumentController.php
changeset 339 766af1228b05
parent 329 0a2c2ad49d75
child 369 796725d33b67
--- 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)) {