1 <?php |
1 <?php |
2 |
2 |
3 namespace CorpusParole\Http\Controllers\Api; |
3 namespace CorpusParole\Http\Controllers\Api; |
4 |
4 |
5 use Illuminate\Http\Request; |
5 use Illuminate\Http\Request; |
6 //use Illuminate\Http\Response; |
|
7 |
6 |
8 use CorpusParole\Http\Requests; |
7 use CorpusParole\Http\Requests; |
9 use CorpusParole\Http\Controllers\Controller; |
8 use CorpusParole\Http\Controllers\Controller; |
10 use CorpusParole\Repositories\DocumentRepository; |
9 use CorpusParole\Repositories\DocumentRepository; |
11 use CorpusParole\Services\TranscriptManager; |
10 use CorpusParole\Services\TranscriptManager; |
28 */ |
27 */ |
29 public function index(Request $request) |
28 public function index(Request $request) |
30 { |
29 { |
31 $perPage = intval($request->input('perpage', config('corpusparole.documents_per_page'))); |
30 $perPage = intval($request->input('perpage', config('corpusparole.documents_per_page'))); |
32 |
31 |
33 $filters = []; |
32 $filterManager = new CorpusFilterManager(); |
34 |
33 |
35 $languages = CorpusFilterManager::prepareLanguages($request->input('language', [])); |
34 $filters = $filterManager->prepareFilters($request); |
36 if(!empty($languages)) { |
|
37 $filters['language'] = $languages; |
|
38 } |
|
39 |
|
40 $location = CorpusFilterManager::prepareLocation($request->input('location', '')); |
|
41 if(!empty($location)) { |
|
42 $filters['location'] = $location; |
|
43 } |
|
44 |
|
45 $themes = CorpusFilterManager::prepareTheme($request->input('theme', [])); |
|
46 if(!empty($themes)) { |
|
47 $filters['themes'] = $themes; |
|
48 } |
|
49 |
|
50 $discourses = CorpusFilterManager::prepareDiscourse($request->input('discourse', [])); |
|
51 if(!empty($discourses)) { |
|
52 $filters['discourses'] = $discourses; |
|
53 } |
|
54 $dates = CorpusFilterManager::prepareDate($request->input('date', [])); |
|
55 if(!empty($dates)) { |
|
56 $filters['dates'] = $dates; |
|
57 } |
|
58 |
35 |
59 $sort = $request->input('sort', null); |
36 $sort = $request->input('sort', null); |
60 |
37 |
61 $paginator = $this->documentRepository->paginate($filters, $perPage, config('corpusparole.pagination_page_param'), null, $sort); |
38 $paginator = $this->documentRepository->paginate($filters, $perPage, config('corpusparole.pagination_page_param'), null, $sort); |
62 |
39 |