From 04a64918405d882b7dd65ee747d4a19e482ea23d Mon Sep 17 00:00:00 2001
From: Damien <damien.burel@maarch.org>
Date: Wed, 11 Apr 2018 11:24:37 +0200
Subject: [PATCH] [FEAT] Ban rest call

---
 rest/index.php                                |  1 +
 .../controllers/AutoCompleteController.php    | 29 +++++++++++++++++++
 2 files changed, 30 insertions(+)

diff --git a/rest/index.php b/rest/index.php
index 0d965ad9ea7..a9a906f3dc5 100755
--- a/rest/index.php
+++ b/rest/index.php
@@ -126,6 +126,7 @@ $app->get('/autocomplete/users', \SrcCore\controllers\AutoCompleteController::cl
 $app->get('/autocomplete/users/visa', \SrcCore\controllers\AutoCompleteController::class . ':getUsersForVisa');
 $app->get('/autocomplete/entities', \SrcCore\controllers\AutoCompleteController::class . ':getEntities');
 $app->get('/autocomplete/statuses', \SrcCore\controllers\AutoCompleteController::class . ':getStatuses');
+$app->get('/autocomplete/banAddresses', \SrcCore\controllers\AutoCompleteController::class . ':getBanAddresses');
 
 //Baskets
 $app->get('/baskets', \Basket\controllers\BasketController::class . ':get');
diff --git a/src/core/controllers/AutoCompleteController.php b/src/core/controllers/AutoCompleteController.php
index ee2c04f470c..33aad37da54 100644
--- a/src/core/controllers/AutoCompleteController.php
+++ b/src/core/controllers/AutoCompleteController.php
@@ -15,6 +15,7 @@
 namespace SrcCore\controllers;
 
 use Group\models\ServiceModel;
+use Respect\Validation\Validator;
 use Slim\Http\Request;
 use Slim\Http\Response;
 use Entity\models\EntityModel;
@@ -116,4 +117,32 @@ class AutoCompleteController
 
         return $response->withJson($data);
     }
+
+    public static function getBanAddresses(Request $request, Response $response)
+    {
+        $data = $request->getQueryParams();
+
+        $check = Validator::stringType()->notEmpty()->validate($data['address']);
+        if (!$check) {
+            return $response->withStatus(400)->withJson(['errors' => 'Bad Request']);
+        }
+
+        \Zend_Search_Lucene_Analysis_Analyzer::setDefault(new \Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive());
+        \Zend_Search_Lucene_Search_QueryParser::setDefaultOperator(\Zend_Search_Lucene_Search_QueryParser::B_AND);
+        \Zend_Search_Lucene_Search_QueryParser::setDefaultEncoding('utf-8');
+
+        $index = \Zend_Search_Lucene::open('addresses_ban/indexes');
+        $hits = $index->find($data['address']);
+        $addresses = [];
+        foreach($hits as $key => $hit){
+            $addresses[] = [
+                $hit->id,
+                $hit->afnorName,
+                $hit->postalCode,
+                $hit->streetNumber
+            ];
+        }
+
+        return $response->withJson(['count' => count($hits), 'addresses' => $addresses]);
+    }
 }
-- 
GitLab