|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
-
- namespace Lc\ShopBundle\Services ;
-
- class CityUtils
- {
-
- function callApi($method, $url, $data = false)
- {
- $url = 'https://geo.api.gouv.fr/'.$url ;
- $curl = curl_init();
-
- switch ($method)
- {
- case "POST":
- curl_setopt($curl, CURLOPT_POST, 1);
-
- if ($data)
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
- break;
- case "PUT":
- curl_setopt($curl, CURLOPT_PUT, 1);
- break;
- default:
- if ($data)
- $url = sprintf("%s?%s", $url, http_build_query($data));
- }
-
- // Optional Authentication:
- curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
- curl_setopt($curl, CURLOPT_USERPWD, "username:password");
-
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
-
- $result = curl_exec($curl);
-
- curl_close($curl);
-
- return $result;
- }
-
- public function getZipByCity($city)
- {
- $zip = null ;
- $returnCitiesSearchZip = json_decode($this->callApi('get', 'communes', ['nom' => $city, 'fields' => 'nom,codesPostaux'])) ;
-
- if($returnCitiesSearchZip) {
- foreach($returnCitiesSearchZip as $citySearchZip) {
- if(strtolower(trim($city)) == strtolower(trim($citySearchZip->nom))) {
- $zip = $citySearchZip->codesPostaux[0] ;
- }
- }
- }
-
- return $zip ;
- }
- }
|