Skip to content
Snippets Groups Projects
Commit e67b928f authored by Guillaume Heurtier's avatar Guillaume Heurtier
Browse files

FIX #17934 TIME 0:55 added route to autocomplete postcodes

parent bc362157
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
...@@ -121,6 +121,7 @@ $app->get('/autocomplete/tags', \SrcCore\controllers\AutoCompleteController::cla ...@@ -121,6 +121,7 @@ $app->get('/autocomplete/tags', \SrcCore\controllers\AutoCompleteController::cla
$app->get('/autocomplete/ouM2MAnnuary', \SrcCore\controllers\AutoCompleteController::class . ':getOuM2MAnnuary'); $app->get('/autocomplete/ouM2MAnnuary', \SrcCore\controllers\AutoCompleteController::class . ':getOuM2MAnnuary');
$app->get('/autocomplete/businessIdM2MAnnuary', \SrcCore\controllers\AutoCompleteController::class . ':getBusinessIdM2MAnnuary'); $app->get('/autocomplete/businessIdM2MAnnuary', \SrcCore\controllers\AutoCompleteController::class . ':getBusinessIdM2MAnnuary');
$app->get('/autocomplete/contacts/m2m', \SrcCore\controllers\AutoCompleteController::class . ':getAvailableContactsForM2M'); $app->get('/autocomplete/contacts/m2m', \SrcCore\controllers\AutoCompleteController::class . ':getAvailableContactsForM2M');
$app->get('/autocomplete/postcodes', \SrcCore\controllers\AutoCompleteController::class . ':getPostcodes');
//Baskets //Baskets
$app->get('/baskets', \Basket\controllers\BasketController::class . ':get'); $app->get('/baskets', \Basket\controllers\BasketController::class . ':get');
......
...@@ -982,6 +982,36 @@ class AutoCompleteController ...@@ -982,6 +982,36 @@ class AutoCompleteController
return $response->withJson($data); return $response->withJson($data);
} }
public function getPostcodes(Request $request, Response $response)
{
$queryParams = $request->getQueryParams();
if (!empty($queryParams['search']) && !Validator::stringType()->validate($queryParams['search'])) {
return $response->withStatus(400)->withJson(['errors' => 'Query search is not a string']);
}
$postcodes = [];
if (($handle = fopen("referential/list-postcodes-fr.csv", "r")) !== false) {
fgetcsv($handle, 0, ';');
while (($data = fgetcsv($handle, 0, ';')) !== false) {
$postcodes[] = [
'town' => utf8_encode($data[1]),
'postcode' => utf8_encode($data[2])
];
}
fclose($handle);
}
if (!empty($queryParams['search'])) {
$search = strtoupper($queryParams['search']);
$postcodes = array_values(array_filter($postcodes, function ($code) use ($search) {
return strpos($code['town'], $search) !== false || strpos($code['postcode'], $search) !== false;
}));
}
return $response->withJson(['postcodes' => $postcodes]);
}
public static function getDataForRequest(array $args) public static function getDataForRequest(array $args)
{ {
ValidatorModel::notEmpty($args, ['search', 'fields', 'fieldsNumber']); ValidatorModel::notEmpty($args, ['search', 'fields', 'fieldsNumber']);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment