From 3caa6b53dea2f81e4c79b7c6643faeb913176b0b Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Wed, 22 Jan 2020 11:40:58 +0100
Subject: [PATCH] FEAT #12091 TIME 0:15 Non searchable statuses in search
 controller

---
 src/app/search/controllers/SearchController.php |  7 +++++++
 src/app/status/models/StatusModelAbstract.php   | 12 +++++++-----
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/app/search/controllers/SearchController.php b/src/app/search/controllers/SearchController.php
index 3583383767d..5105a763463 100644
--- a/src/app/search/controllers/SearchController.php
+++ b/src/app/search/controllers/SearchController.php
@@ -127,6 +127,13 @@ class SearchController
             }
         }
 
+        $nonSearchableStatuses = StatusModel::get(['select' => ['id'], 'where' => ['can_be_searched = ?'], 'data' => ['N']]);
+        if (!empty($nonSearchableStatuses)) {
+            $nonSearchableStatuses = array_column($nonSearchableStatuses, 'id');
+            $searchWhere[] = 'status not in (?)';
+            $searchData[] = $nonSearchableStatuses;
+        }
+
         $limit = 25;
         if (!empty($queryParams['limit']) && is_numeric($queryParams['limit'])) {
             $limit = (int)$queryParams['limit'];
diff --git a/src/app/status/models/StatusModelAbstract.php b/src/app/status/models/StatusModelAbstract.php
index 51600bd30d0..1b91e475d86 100755
--- a/src/app/status/models/StatusModelAbstract.php
+++ b/src/app/status/models/StatusModelAbstract.php
@@ -19,17 +19,19 @@ use SrcCore\models\DatabaseModel;
 
 abstract class StatusModelAbstract
 {
-    public static function get(array $aArgs = [])
+    public static function get(array $args = [])
     {
-        ValidatorModel::arrayType($aArgs, ['select']);
+        ValidatorModel::arrayType($args, ['select', 'where', 'data']);
 
-        $aReturn = DatabaseModel::select([
-            'select'    => empty($aArgs['select']) ? ['*'] : $aArgs['select'],
+        $statuses = DatabaseModel::select([
+            'select'    => empty($args['select']) ? ['*'] : $args['select'],
             'table'     => ['status'],
+            'where'     => $args['where'] ?? [],
+            'data'      => $args['data'] ?? [],
             'order_by'  => ['label_status']
         ]);
 
-        return $aReturn;
+        return $statuses;
     }
 
     public static function getById(array $aArgs)
-- 
GitLab