From 9b2decfe193e3977617222ed787d558743786edb Mon Sep 17 00:00:00 2001
From: Manuel Spuhler <manuel.spuhler@gmail.com>
Date: Mon, 25 Oct 2021 15:30:45 +0000
Subject: [PATCH] Formula string request

---
 .../engine/connectors/exareme/converters.ts   | 36 +++++++++++--------
 1 file changed, 21 insertions(+), 15 deletions(-)

diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts
index 2bca814..2c7b7c5 100644
--- a/api/src/engine/connectors/exareme/converters.ts
+++ b/api/src/engine/connectors/exareme/converters.ts
@@ -65,7 +65,19 @@ const algoParamInputToData = (param: AlgorithmParameter) => {
 };
 
 export const experimentInputToData = (data: ExperimentCreateInput) => {
-  const params = {
+  const formula =
+    ((data.transformations?.length > 0 || data.interactions?.length > 0) && {
+      single: data.transformations?.map((t) => ({
+        var_name: t.name,
+        unary_operation: t.operation,
+      })),
+      interactions: data.interactions?.map((v) =>
+        v.reduce((a, e, i) => ({ ...a, [`var${i + 1}`]: e }), {}),
+      ),
+    }) ||
+    null;
+
+  return {
     algorithm: {
       parameters: [
         {
@@ -88,20 +100,14 @@ export const experimentInputToData = (data: ExperimentCreateInput) => {
           label: 'y',
           value: data.variables.join(','),
         },
-        {
-          ...(data.transformations?.length > 0 && {
-            name: 'formula',
-            value: JSON.stringify({
-              single: data.transformations?.map((t) => ({
-                var_name: t.name,
-                unary_operation: t.operation,
-              })),
-              interactions: data.interactions?.map((v) =>
-                v.reduce((a, v, i) => ({ ...a, [`var${i + 1}`]: v }), {}),
-              ),
-            }),
-          })
-        },
+        ...(formula
+          ? [
+              {
+                name: 'formula',
+                value: JSON.stringify(formula),
+              },
+            ]
+          : []),
       ].concat(data.algorithm.parameters.map(algoParamInputToData)),
       type: data.algorithm.type ?? 'string',
       name: data.algorithm.name,
-- 
GitLab