<?php namespace Lc\ShopBundle\Controller ; use Lc\ShopBundle\Services\CityUtils; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; class CitiesController extends AbstractController { protected $cities ; public function __construct(CityUtils $cities) { $this->cities = $cities ; } public function index(Request $request) : JsonResponse { $term = $request->get('term') ; $context = $request->get('context') ; $data = [ 'boost' => 'population', ] ; if(strlen($term) == 5 && is_numeric($term)) { $data['codePostal'] = $term ; } else { $data['nom'] = $term; } $result = array_merge( json_decode($this->cities->callApi('get', 'communes', array_merge($data, ['codeRegion' => 27]))), json_decode($this->cities->callApi('get', 'communes', array_merge($data, ['codeRegion' => 44]))) ); $return = [] ; foreach($result as $city) { $return[] = [ 'label' => $city->nom, 'value' => $city->code ] ; } if($context == 'frontend') { $return = [ 'items' => $return ] ; } return new JsonResponse($return) ; } }