From af642ef113aa1a9480b638458c8a8c016dc39cd4 Mon Sep 17 00:00:00 2001
From: Johannes Hoermann <j.hoermann@adito.de>
Date: Wed, 24 Apr 2019 09:46:51 +0200
Subject: [PATCH] better error message

---
 .../_____LANGUAGE_EXTRA.aod                   | 18 ++++++++++++++++++
 .../_____LANGUAGE_de/_____LANGUAGE_de.aod     | 19 +++++++++++++++++++
 .../_____LANGUAGE_en/_____LANGUAGE_en.aod     | 19 +++++++++++++++++++
 process/WsValidation_lib/process.js           | 12 +++++++-----
 4 files changed, 63 insertions(+), 5 deletions(-)

diff --git a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
index e68b7b423c..ab67a7e7b5 100644
--- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
+++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod
@@ -2919,6 +2919,24 @@
     <entry>
       <key>${ATTRIBUTE_VOID}</key>
     </entry>
+    <entry>
+      <key>${WEBSERVICE_ERROR} url:%0 status:%1</key>
+    </entry>
+    <entry>
+      <key>file '%0' cannot be read</key>
+    </entry>
+    <entry>
+      <key>Importer</key>
+    </entry>
+    <entry>
+      <key>yyyy-MM-dd HH:mm:ss</key>
+    </entry>
+    <entry>
+      <key>file '%0' does not exist or you have got no permission on this file</key>
+    </entry>
+    <entry>
+      <key>Zip</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
   <sqlModels>
diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
index 008eeb3a3d..efefdb8fdc 100644
--- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
+++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod
@@ -3738,6 +3738,25 @@
     <entry>
       <key>MyTasks</key>
     </entry>
+    <entry>
+      <key>${WEBSERVICE_ERROR} url:%0 status:%1</key>
+      <value>Webservice nicht erreichbar. URL: %0 %1</value>
+    </entry>
+    <entry>
+      <key>file '%0' cannot be read</key>
+    </entry>
+    <entry>
+      <key>Importer</key>
+    </entry>
+    <entry>
+      <key>yyyy-MM-dd HH:mm:ss</key>
+    </entry>
+    <entry>
+      <key>file '%0' does not exist or you have got no permission on this file</key>
+    </entry>
+    <entry>
+      <key>Zip</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
index e2a9a226e1..be981391a5 100644
--- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
+++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod
@@ -2952,6 +2952,25 @@
       <key>${ATTRIBUTE_VOID}</key>
       <value>Void</value>
     </entry>
+    <entry>
+      <key>${WEBSERVICE_ERROR} url:%0 status:%1</key>
+      <value>Webservice not available. URL: %0 %1</value>
+    </entry>
+    <entry>
+      <key>file '%0' cannot be read</key>
+    </entry>
+    <entry>
+      <key>Importer</key>
+    </entry>
+    <entry>
+      <key>yyyy-MM-dd HH:mm:ss</key>
+    </entry>
+    <entry>
+      <key>file '%0' does not exist or you have got no permission on this file</key>
+    </entry>
+    <entry>
+      <key>Zip</key>
+    </entry>
   </keyValueMap>
   <font name="Dialog" style="0" size="11" />
 </language>
diff --git a/process/WsValidation_lib/process.js b/process/WsValidation_lib/process.js
index c33dc9b3c4..5a0cf4615d 100644
--- a/process/WsValidation_lib/process.js
+++ b/process/WsValidation_lib/process.js
@@ -1,3 +1,5 @@
+import("system.translate");
+import("system.logging");
 import("system.project");
 import("system.vars");
 import("system.neon");
@@ -126,16 +128,15 @@ WsValidationUtils.validate = function(pValue, pType, pCountry)
         
         // call webservice
         var ret = JSON.parse(net.callRestWebserviceBasicAuth(url, actionType, parameters, null, null, "text/plain", "text/plain", util.DATA_TEXT, util.DATA_TEXT, userName, pw, true));
-        
-        if (ret.hasHttpSuccessStatusCode)
+
+        if (ret.hasHttpSuccessStatusCode && ret.httpStatusCode == 200)
         {
             // different handling of the result per type
             return pType.processResultCallback(ret.body, pValue);
         }
         else
         {
-           
-            // error handling
+            throw new Error(translate.withArguments("${WEBSERVICE_ERROR} url:%0 status:%1", [url, (ret.hasHttpSuccessStatusCode ? " StatusCode: " + ret.httpStatusCode : "")]));
         }
     }
     
@@ -151,7 +152,8 @@ WsValidationUtils.setAddressFields = function()
     {
         var data = JSON.parse(vars.get("$this.value"));
     } catch (exception) { 
-        // if no valid json
+        // if no valid json, it is a direct user input and not a uuid.
+        // ignore error
         return
     }
      
-- 
GitLab