From cadb8c3d1e064023ce2e6f4300161b507cd32c49 Mon Sep 17 00:00:00 2001
From: stvoutsin <steliosvoutsinas@yahoo.com>
Date: Mon, 8 Nov 2021 15:25:17 +0200
Subject: [PATCH] Fixed error response mechanism for TAP queries

---
 src/components/query/QueryIVOARegistry.js     | 12 +++++++++++-
 .../services/query_results/IVOAResults.js     | 19 +++++++++++++++----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/components/query/QueryIVOARegistry.js b/src/components/query/QueryIVOARegistry.js
index 61c08cc..1a5f84b 100644
--- a/src/components/query/QueryIVOARegistry.js
+++ b/src/components/query/QueryIVOARegistry.js
@@ -91,7 +91,17 @@ export default function QueryIVOARegistry() {
                           status: "fetched",
                           results: queryResponse.data,
                       });
-                  })
+                  }).catch(() => {
+                      queryMap.set(query.catalog, {
+                          catalog: query.catalog,
+                          service_type: query.service_type,
+                          vo_table_schema:"",
+                          esapquery: query.esapquery,
+                          status: "error",
+                          results: queryResponse.data,
+                      });
+                  });
+
           }
           else {
             queryMap.set(query.catalog, {
diff --git a/src/components/services/query_results/IVOAResults.js b/src/components/services/query_results/IVOAResults.js
index d7f5ab7..e685f9d 100644
--- a/src/components/services/query_results/IVOAResults.js
+++ b/src/components/services/query_results/IVOAResults.js
@@ -20,11 +20,22 @@ export default function IVOAResults({ catalog }) {
   if (!queryMap.get(catalog)) return null;
   console.log("VO service queryMap:", queryMap.get(catalog));
 
+  if (queryMap.get(catalog).status === "error") {
+      if (queryMap.get(catalog).results[0].includes("ERROR")) {
+          return (
+            <Alert variant="danger">{queryMap.get(catalog).results[0]}</Alert>
+          );
+      } else {
+          return (
+            <Alert variant="danger">Unknown error while running this query!</Alert>
+          );
+
+      }
+
+  }
+
   if (queryMap.get(catalog).status === "fetched") {
-    // if (queryMap.get(catalog).results[0].includes("ERROR"))
-    //   return (
-    //     <Alert variant="warning">{queryMap.get(catalog).results[0]}</Alert>
-    //   );
+
       try {
           if (queryMap.get(catalog).results.results.length === 0)
               return <Alert variant="warning">No matching results found!</Alert>;
-- 
GitLab