diff --git a/src/Bundle/ChillMainBundle/Controller/AddressReferenceAPIController.php b/src/Bundle/ChillMainBundle/Controller/AddressReferenceAPIController.php new file mode 100644 index 000000000..3e63c1b2a --- /dev/null +++ b/src/Bundle/ChillMainBundle/Controller/AddressReferenceAPIController.php @@ -0,0 +1,27 @@ +query->has('postal_code')) { + + $qb->where('e.postcode = :postal_code') + ->setParameter('postal_code', $request->get('postal_code')); + + } + } + +} diff --git a/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php b/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php index 397125bf8..a02765ff7 100644 --- a/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php +++ b/src/Bundle/ChillMainBundle/Controller/PostalCodeAPIController.php @@ -6,7 +6,7 @@ use Chill\MainBundle\CRUD\Controller\ApiController; use Symfony\Component\HttpFoundation\Request; /** - * Class PostalCodeController + * Class PostalCodeAPIController * * @package Chill\MainBundle\Controller * @author Champs Libres diff --git a/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php b/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php index e6d82877d..0024f59d7 100644 --- a/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php +++ b/src/Bundle/ChillMainBundle/DependencyInjection/ChillMainExtension.php @@ -270,6 +270,7 @@ class ChillMainExtension extends Extension implements PrependExtensionInterface, ] ], [ + 'controller' => \Chill\MainBundle\Controller\AddressReferenceAPIController::class, 'class' => \Chill\MainBundle\Entity\AddressReference::class, 'name' => 'address_reference', 'base_path' => '/api/1.0/main/address-reference', diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js index 8b466a244..7116a9306 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_api/AddAddress.js @@ -1,5 +1,5 @@ /* -* Endpoint countries GET +* Endpoint chill_api_single_country_index * method GET, get Country Object * @returns {Promise} a promise containing all Country object */ @@ -15,7 +15,7 @@ const fetchCountries = () => { }; /* -* Endpoint cities GET +* Endpoint chill_api_single_postal_code_index * method GET, get Country Object * @returns {Promise} a promise containing all Postal Code objects filtered with country */ @@ -30,14 +30,14 @@ const fetchCities = (country) => { }; /* -* Endpoint chill_main_address_reference_api_show +* Endpoint chill_api_single_address_reference_index * method GET, get AddressReference Object -* @returns {Promise} a promise containing all AddressReference object +* @returns {Promise} a promise containing all AddressReference objects filtered with country */ -const fetchReferenceAddresses = (city) => { - console.log('<<< fetching references addresses for', city); // city n'est pas utilisé pour le moment +const fetchReferenceAddresses = (postalCode) => { + console.log('<<< fetching references addresses for', postalCode); //TODO deal with huge number of addresses... we should do suggestion... - const url = `/api/1.0/main/address-reference.json`; + const url = `/api/1.0/main/address-reference.json?item_per_page=1000&postal_code=${postalCode.id}`; return fetch(url) .then(response => { if (response.ok) { return response.json(); } diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue index f304f3c45..13d7c2f2b 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/AddAddress.vue @@ -187,8 +187,7 @@ export default { }, getReferenceAddresses(city) { console.log('getReferenceAddresses for', city.name); - fetchReferenceAddresses(city) // il me semble que le paramètre city va limiter le poids des adresses de références reçues - .then(addresses => new Promise((resolve, reject) => { + fetchReferenceAddresses(city).then(addresses => new Promise((resolve, reject) => { console.log('addresses', addresses); this.address.loaded.addresses = addresses.results; resolve();