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