From b81a2428dadf08c1a9f26856086cc96f21b6afe1 Mon Sep 17 00:00:00 2001
From: Steve Reis <stevereis93@gmail.com>
Date: Thu, 30 Sep 2021 14:00:01 +0200
Subject: [PATCH] Edit safer transform for tableresult (single only)

---
 api/src/engine/connectors/exareme/transformations.ts | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/api/src/engine/connectors/exareme/transformations.ts b/api/src/engine/connectors/exareme/transformations.ts
index 597ac39..7e9af19 100644
--- a/api/src/engine/connectors/exareme/transformations.ts
+++ b/api/src/engine/connectors/exareme/transformations.ts
@@ -18,7 +18,9 @@ export const transientToTable = jsonata(`
     };
 
     result.data.[
-        $.single.*@$p#$i.{
+        $.single.*@$p#$i.(
+            $ks := $keys($p.*.data[$type($) = 'object']);
+            {
             'groupBy' : 'single',
             'name': $keys(%)[$i],
             'headers': $append("", $keys(*)).{
@@ -30,14 +32,14 @@ export const transientToTable = jsonata(`
                 ['Datapoints', $p.*.($e(num_datapoints))],
                 ['Nulls', $p.*.($e(num_nulls))],
                 $p.*.data.($fn($)) ~> $reduce(function($a, $b) {
-                    $each($a, function($v, $k) {(
+                    $map($ks, function($k) {(
                         {
-                            $k : [$v, $e($lookup($b,$k), "No data")]
+                            $k : [$e($lookup($a,$k), "No data"), $e($lookup($b,$k), "No data")]
                         }
                     )}) ~> $merge()
                 }) ~> $each(function($v, $k) {$append($k,$v)})
             ]
-        }
+        })
     ]
 )
 `);
-- 
GitLab