Added findDistrict to AddressDB Api
This commit is contained in:
@@ -18,6 +18,8 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
$this->addRoute("/addressdb/findZip", "findZip", "POST");
|
$this->addRoute("/addressdb/findZip", "findZip", "POST");
|
||||||
$this->addRoute("/addressdb/findCity", "findCity", "GET");
|
$this->addRoute("/addressdb/findCity", "findCity", "GET");
|
||||||
$this->addRoute("/addressdb/findCity", "findCity", "POST");
|
$this->addRoute("/addressdb/findCity", "findCity", "POST");
|
||||||
|
$this->addRoute("/addressdb/findDistrict", "findDistrict", "GET");
|
||||||
|
$this->addRoute("/addressdb/findDistrict", "findDistrict", "POST");
|
||||||
|
|
||||||
$this->allowMissingOrigin = true;
|
$this->allowMissingOrigin = true;
|
||||||
}
|
}
|
||||||
@@ -68,6 +70,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
// search parameter is unofficially deprecated but still supported
|
// search parameter is unofficially deprecated but still supported
|
||||||
$search = trim($get['search']);
|
$search = trim($get['search']);
|
||||||
$city = trim($get['city']);
|
$city = trim($get['city']);
|
||||||
|
$district = trim($get['district']);
|
||||||
$zip = trim($get['zip']);
|
$zip = trim($get['zip']);
|
||||||
|
|
||||||
if(!$city) {
|
if(!$city) {
|
||||||
@@ -82,6 +85,9 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
if($zip) {
|
if($zip) {
|
||||||
$city_search['plz%'] = $zip;
|
$city_search['plz%'] = $zip;
|
||||||
}
|
}
|
||||||
|
if($district) {
|
||||||
|
$district_search['ortschaft%'] = $zip;
|
||||||
|
}
|
||||||
|
|
||||||
if(count($this->filter_salescluster_ids)) {
|
if(count($this->filter_salescluster_ids)) {
|
||||||
$city_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
$city_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
||||||
@@ -99,6 +105,58 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
return mfResponse::Ok(['cities' => array_values($cities)]);
|
return mfResponse::Ok(['cities' => array_values($cities)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected function findDistrict() {
|
||||||
|
// unofficially supporting GET and POST in v1
|
||||||
|
$get = array_merge($this->post, $this->get);
|
||||||
|
|
||||||
|
// search parameter is unofficially deprecated but still supported
|
||||||
|
$search = trim($get['search']);
|
||||||
|
$city = trim($get['city']);
|
||||||
|
$district = trim($get['district']);
|
||||||
|
$zip = trim($get['zip']);
|
||||||
|
|
||||||
|
if(!$district) {
|
||||||
|
$district = $search;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!$city && !$zip && !$district) {
|
||||||
|
return mfResponse::BadRequest(['message' => "No search parameters"]);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($district) {
|
||||||
|
$city_search = ['ortschaft%' => $district];
|
||||||
|
}
|
||||||
|
if($city) {
|
||||||
|
$city_search = ['name%' => $city];
|
||||||
|
}
|
||||||
|
if($zip) {
|
||||||
|
$city_search['plz%'] = $zip;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(count($this->filter_salescluster_ids)) {
|
||||||
|
$city_search['netzgebiet_id'] = $this->filter_salescluster_ids;
|
||||||
|
}
|
||||||
|
|
||||||
|
$cities = [];
|
||||||
|
foreach(ADBGemeindeModel::search($city_search) as $gem) {
|
||||||
|
$districts = [];
|
||||||
|
|
||||||
|
if($district) {
|
||||||
|
foreach(ADBOrtschaftModel::search(["gemeinde_id" => $gem->id, "name%" => $district]) as $ort) {
|
||||||
|
$districts[] = $ort->name;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
foreach($gem->ortschaften as $ort) {
|
||||||
|
$districts[] = $ort->name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$cities[$gem->name] = $districts;
|
||||||
|
}
|
||||||
|
|
||||||
|
return mfResponse::Ok(['cities' => $cities]);
|
||||||
|
}
|
||||||
|
|
||||||
protected function findZip() {
|
protected function findZip() {
|
||||||
// unofficially supporting GET and POST in v1
|
// unofficially supporting GET and POST in v1
|
||||||
$get = array_merge($this->post, $this->get);
|
$get = array_merge($this->post, $this->get);
|
||||||
@@ -182,6 +240,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
|
|
||||||
$search_street = $this->db()->escape(trim($get['street']));
|
$search_street = $this->db()->escape(trim($get['street']));
|
||||||
$search_zip = $this->db()->escape(trim($get['zip']));
|
$search_zip = $this->db()->escape(trim($get['zip']));
|
||||||
|
$search_district = $this->db()->escape(trim($get['district']));
|
||||||
$search_city = $this->db()->escape(trim($get['city']));
|
$search_city = $this->db()->escape(trim($get['city']));
|
||||||
$search_housenumber = $this->db()->escape(trim($get['housenumber']));
|
$search_housenumber = $this->db()->escape(trim($get['housenumber']));
|
||||||
|
|
||||||
@@ -197,6 +256,9 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
if($search_zip) {
|
if($search_zip) {
|
||||||
$where .= " AND plz like '%$search_zip%'";
|
$where .= " AND plz like '%$search_zip%'";
|
||||||
}
|
}
|
||||||
|
if($search_district) {
|
||||||
|
$where .= " AND ortschaft like '%$search_district%'";
|
||||||
|
}
|
||||||
if($search_city) {
|
if($search_city) {
|
||||||
$where .= " AND gemeinde like '%$search_city%'";
|
$where .= " AND gemeinde like '%$search_city%'";
|
||||||
}
|
}
|
||||||
@@ -229,6 +291,7 @@ class AddressdbApicontroller extends mfBaseApicontroller {
|
|||||||
$addresses[] = [
|
$addresses[] = [
|
||||||
'zip' => $data->plz,
|
'zip' => $data->plz,
|
||||||
'city' => $data->gemeinde,
|
'city' => $data->gemeinde,
|
||||||
|
'district' => $data->ortschaft,
|
||||||
'street' => $data->strasse,
|
'street' => $data->strasse,
|
||||||
'housenumber' => $data->hausnummer,
|
'housenumber' => $data->hausnummer,
|
||||||
'block' => $data->block,
|
'block' => $data->block,
|
||||||
|
|||||||
Reference in New Issue
Block a user