mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-07-01 06:26:15 +00:00
address selection: filter addresses based on cities
This commit is contained in:
parent
4cc308c936
commit
65859f62f3
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Chill\MainBundle\Controller;
|
||||
|
||||
use Chill\MainBundle\CRUD\Controller\ApiController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
|
||||
/**
|
||||
* Class AddressReferenceAPIController
|
||||
*
|
||||
* @package Chill\MainBundle\Controller
|
||||
* @author Champs Libres
|
||||
*/
|
||||
class AddressReferenceAPIController extends ApiController
|
||||
{
|
||||
|
||||
protected function customizeQuery(string $action, Request $request, $qb): void
|
||||
{
|
||||
if ($request->query->has('postal_code')) {
|
||||
|
||||
$qb->where('e.postcode = :postal_code')
|
||||
->setParameter('postal_code', $request->get('postal_code'));
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -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
|
||||
|
@ -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',
|
||||
|
@ -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(); }
|
||||
|
@ -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();
|
||||
|
Loading…
x
Reference in New Issue
Block a user