server/src/app/Http/Controllers/Api/ThemeController.php
changeset 378 5b47eab083f3
parent 377 52169c718513
child 406 cf0f23803a53
--- a/server/src/app/Http/Controllers/Api/ThemeController.php	Thu Oct 20 17:27:36 2016 +0200
+++ b/server/src/app/Http/Controllers/Api/ThemeController.php	Thu Oct 20 19:14:37 2016 +0200
@@ -2,8 +2,6 @@
 
 namespace CorpusParole\Http\Controllers\Api;
 
-// use Illuminate\Http\Request;
-// use CorpusParole\Http\Requests;
 use CorpusParole\Http\Controllers\Controller;
 
 use Illuminate\Http\Request;
@@ -15,6 +13,7 @@
 
 use CorpusParole\Services\LexvoResolverInterface;
 use CorpusParole\Services\BnfResolverInterface;
+use CorpusParole\Libraries\Filters\CorpusFilterManager;
 
 
 class ThemeController extends Controller
@@ -72,10 +71,18 @@
             $order_dir = "desc";
         }
 
-        $query = [
+        $filterManager = new CorpusFilterManager();
+        $filters = $filterManager->prepareFilters($request);
+        unset($filters['themes']);
+        $qFilterParts = $filterManager->buildESFilters($filters);
+        $query = $filterManager->buildQuery($qFilterParts);
+
+
+        $esQuery = [
             'index' => env('ELASTICSEARCH_INDEX'),
             'body' => [
                 'size' => 0,
+                'query' => $query,
                 'aggs' => [
                     "subjects" => [
                         "nested" => [ "path" => "subject" ],
@@ -94,10 +101,10 @@
         ];
 
         if($include) {
-            $query['body']['aggs']['subjects']['aggs']['subjects']['terms']['include'] = $include;
+            $esQuery['body']['aggs']['subjects']['aggs']['subjects']['terms']['include'] = $include;
         }
 
-        $esRes = Es::search($query);
+        $esRes = Es::search($esQuery);
 
         $themes = [];