From 76b7de0ef0fd32b70e9d4d505aa16a4b5f595c52 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Tue, 2 Jul 2019 10:43:59 +0200
Subject: [PATCH] use nominatim for addressvalidation

---
 .../AddressValidation_entity.aod              |   1 +
 .../children/type_param/valueProcess.js       |   8 +-
 .../children/type_param/valueProcess.js       |   8 +-
 process/WsValidation_lib/process.js           | 105 +-----------------
 4 files changed, 12 insertions(+), 110 deletions(-)

diff --git a/entity/AddressValidation_entity/AddressValidation_entity.aod b/entity/AddressValidation_entity/AddressValidation_entity.aod
index 7544eed7e3..90c7e6edcb 100644
--- a/entity/AddressValidation_entity/AddressValidation_entity.aod
+++ b/entity/AddressValidation_entity/AddressValidation_entity.aod
@@ -134,6 +134,7 @@
       <jDitoRecordAlias></jDitoRecordAlias>
       <isFilterable v="true" />
       <isRequireContainerFiltering v="true" />
+      <isSortable v="true" />
       <contentProcess>%aditoprj%/entity/AddressValidation_entity/recordcontainers/jdito/contentProcess.js</contentProcess>
       <recordFieldMappings>
         <jDitoRecordFieldMapping>
diff --git a/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js b/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js
index 084f00d181..e856004597 100644
--- a/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js
+++ b/entity/AddressValidation_entity/entityfields/cityvalidation/children/type_param/valueProcess.js
@@ -1,4 +1,4 @@
-import("WsValidation_lib");
-import("system.result");
-
-result.string(WsValidationType.get().TYPE_CITY.key);
\ No newline at end of file
+import("WsValidation_lib");
+import("system.result");
+
+result.string(WsValidationType.get().TYPE_CITY_NOMINATIM.key);
\ No newline at end of file
diff --git a/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js b/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js
index 93426dc98c..6ab3539198 100644
--- a/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js
+++ b/entity/AddressValidation_entity/entityfields/zipvalidaton/children/type_param/valueProcess.js
@@ -1,4 +1,4 @@
-import("WsValidation_lib");
-import("system.result");
-
-result.string(WsValidationType.get().TYPE_ZIP.key);
\ No newline at end of file
+import("WsValidation_lib");
+import("system.result");
+
+result.string(WsValidationType.get().TYPE_ZIP_NOMINATIM.key);
\ No newline at end of file
diff --git a/process/WsValidation_lib/process.js b/process/WsValidation_lib/process.js
index 72d857ec82..0f34bcf034 100644
--- a/process/WsValidation_lib/process.js
+++ b/process/WsValidation_lib/process.js
@@ -40,9 +40,8 @@ WsValidationType.get = function(pKey)
         this._cache = {
             // Address lookups
             TYPE_ADDRESS_NOMINATIM: new WsValidationType("TYPE_ADDRESS_NOMINATIM", "nominatim", _processNominatimAddressLookup, _nominatimRequest, "q"),
-            TYPE_ADDRESS: new WsValidationType("TYPE_ADDRESS", "addressValidation", _processAllAddressLookup, _customRequest, "search"),
-            TYPE_ZIP: new WsValidationType("TYPE_ZIP", "zipCityValidation", _processAddressLookup, _customRequest, "zip"),
-            TYPE_CITY: new WsValidationType("TYPE_CITY", "zipCityValidation", _processAddressLookup, _customRequest, "city"),
+            TYPE_ZIP_NOMINATIM: new WsValidationType("TYPE_ZIP_NOMINATIM", "nominatim", _processNominatimAddressLookup, _nominatimRequest, "postalcode"),
+            TYPE_CITY_NOMINATIM: new WsValidationType("TYPE_CITY_NOMINATIM", "nominatim", _processNominatimAddressLookup, _nominatimRequest, "city"),
             
             // Communication validation
             TYPE_PHONE: new WsValidationType("TYPE_PHONE", "phoneValidation", _processCommunicationValidation, _customRequest, "Number")
@@ -53,104 +52,6 @@ WsValidationType.get = function(pKey)
     
     return this._cache;
     
-    /**
-    *   [UID,
-    *    displayName,
-    *    zip,
-    *    city,
-    *    cityext,
-    *    country,
-    *    district,
-    *    region,
-    *    state,
-    *    street,
-    *    data.from_bn + (data.to_bn ? " - " + data.to_bn : ""),
-    *    lon,
-    *    lat,
-    *    value // pValue
-    */                       
-    function _processAllAddressLookup(pWsResult, pValue)
-    {
-        var resultAddresses = [];
-        
-        // if error, return [] else parse the body
-        if (!WsValidationUtils._isError(pWsResult))
-        {
-            resultAddresses = JSON.parse(pWsResult.body);
-        }
-        
-        return resultAddresses.map(function(pAddress, pIndex)
-                    {
-                        pAddress[0].value = pValue;
-                        pAddress[0].index = pIndex;
-                        var data = pAddress[0];
-                        
-                        return [
-                            JSON.stringify(data),
-                            pAddress[1],
-                            data.zip,
-                            data.city,
-                            data.cityext,
-                            data.country,
-                            data.district,
-                            data.region,
-                            data.state,
-                            data.streat,
-                            data.from_bn + (data.to_bn ? " - " + data.to_bn : ""),
-                            data.lon,
-                            data.lat,
-                            pValue]
-                    }, this);
-    }
-    
-    /**
-    *   [UID,
-    *    displayName,
-    *    zip,
-    *    city,
-    *    cityext,
-    *    country,
-    *    district,
-    *    region,
-    *    state,
-    *    street,
-    *    data.from_bn + (data.to_bn ? " - " + data.to_bn : ""),
-    *    lon,
-    *    lat,
-    *    value // (the result. e.g. if pType was ZIP, the value is the found zip)
-    */     
-    function _processAddressLookup(pWsResult, pValue)
-    {
-        var resultAddresses = [];
-        
-        // if error, return [] else parse the body
-        if (!WsValidationUtils._isError(pWsResult))
-        {
-            resultAddresses = JSON.parse(pWsResult.body);
-        }
-                        
-        return resultAddresses.map(function(pAddress, pIndex)
-                    {
-                        pAddress[0].index = pIndex;
-                        var data = pAddress[0];
-                        return [
-                            JSON.stringify(data),
-                            pAddress[1],
-                            data.zip,
-                            data.city,
-                            data.cityext,
-                            data.country,
-                            data.district,
-                            data.region,
-                            data.state,
-                            data.streat,
-                            data.from_bn + (data.to_bn ? " - " + data.to_bn : ""),
-                            data.lon,
-                            data.lat,
-                            data[this.paramName]]
-                    }, this);
-    }
-
     function _processCommunicationValidation(pWsResult, pValue)
     {
         if (!WsValidationUtils._isError(pWsResult))
@@ -191,7 +92,7 @@ WsValidationType.get = function(pKey)
                     pPlaceData.address.postcode,
                     city,
                     cityext,
-                    pPlaceData.address.country_code,
+                    pPlaceData.address.country_code.toUpperCase(),
                     pPlaceData.address.district,
                     pPlaceData.address.state_district,
                     pPlaceData.address.state,
-- 
GitLab