server/src/app/Http/Controllers/Api/DocumentController.php
changeset 339 766af1228b05
parent 329 0a2c2ad49d75
child 369 796725d33b67
equal deleted inserted replaced
338:4a3899b6a7ed 339:766af1228b05
     7 
     7 
     8 use CorpusParole\Http\Requests;
     8 use CorpusParole\Http\Requests;
     9 use CorpusParole\Http\Controllers\Controller;
     9 use CorpusParole\Http\Controllers\Controller;
    10 use CorpusParole\Repositories\DocumentRepository;
    10 use CorpusParole\Repositories\DocumentRepository;
    11 use CorpusParole\Services\TranscriptManager;
    11 use CorpusParole\Services\TranscriptManager;
       
    12 use CorpusParole\Libraries\Filters\CorpusFilterManager;
    12 
    13 
    13 class DocumentController extends Controller
    14 class DocumentController extends Controller
    14 {
    15 {
    15     /**
    16     /**
    16      * Create a new controller instance.
    17      * Create a new controller instance.
    23     /**
    24     /**
    24      * Display a listing of the resource.
    25      * Display a listing of the resource.
    25      *
    26      *
    26      * @return Response
    27      * @return Response
    27      */
    28      */
    28     public function index()
    29     public function index(Request $request)
    29     {
    30     {
    30         $paginator = $this->documentRepository->paginateAll();
    31         $perPage = intval($request->input('perpage', config('corpusparole.documents_per_page')));
       
    32 
       
    33         $filters = [];
       
    34         $languages = $request->input('language', []);
       
    35         if(!empty($languages)) {
       
    36             $filters['language'] = CorpusFilterManager::prepareLanguages($languages);
       
    37         }
       
    38         $sort = $request->input('sort', null);
       
    39 
       
    40         $paginator = $this->documentRepository->paginate($filters, $perPage, config('corpusparole.pagination_page_param'), null, $sort);
       
    41 
    31         $res = $paginator->toArray();
    42         $res = $paginator->toArray();
    32         if(array_key_exists('data', $res)) {
    43         if(array_key_exists('data', $res)) {
    33             $documents = $res['data'];
    44             $documents = $res['data'];
    34             unset($res['data']);
    45             unset($res['data']);
    35             $res['documents'] = $documents;
    46         } else {
    36             //$res['documents'] = $this->documentRepository->resolveLexvo($documents);
    47             $documents = [];
    37         }
    48         }
    38         return response()->json($res);
    49         return response()->json([ 'documents' => $documents, 'meta' => $res]);
    39     }
    50     }
    40 
    51 
    41     /**
    52     /**
    42      * Show the form for creating a new resource.
    53      * Show the form for creating a new resource.
    43      *
    54      *
    65      * @param  string  $id
    76      * @param  string  $id
    66      * @return Response
    77      * @return Response
    67      */
    78      */
    68     public function show(Request $request, $id)
    79     public function show(Request $request, $id)
    69     {
    80     {
    70         $id= urldecode($id);
    81         $id = urldecode($id);
    71         $short = filter_var($request->input('short', false), FILTER_VALIDATE_BOOLEAN);
    82         $short = filter_var($request->input('short', false), FILTER_VALIDATE_BOOLEAN);
    72         $doc = $this->documentRepository->get($id, $short);
    83         $doc = $this->documentRepository->get($id, $short);
    73         if(is_null($doc)) {
    84         if(is_null($doc)) {
    74             abort(404);
    85             abort(404);
    75         }
    86         }