From cd8545cb1a4452843b028a50a4c25e1a3f36278c Mon Sep 17 00:00:00 2001
From: stevereis <stevereis93@gmail.com>
Date: Fri, 21 Jan 2022 15:54:50 +0100
Subject: [PATCH] fix: Algorithm parameter value type is now string

---
 api/src/engine/connectors/exareme/converters.ts               | 2 +-
 api/src/engine/connectors/exareme/transformations.ts          | 4 ++--
 api/src/engine/models/experiment/algorithm-parameter.model.ts | 4 ++--
 .../models/experiment/input/algorithm-parameter.input.ts      | 4 ++--
 api/src/schema.gql                                            | 4 ++--
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts
index ec199f0..593a44d 100644
--- a/api/src/engine/connectors/exareme/converters.ts
+++ b/api/src/engine/connectors/exareme/converters.ts
@@ -74,7 +74,7 @@ const algoParamInputToData = (param: AlgorithmParamInput) => {
   return {
     name: param.id,
     label: param.id,
-    value: param.value.join(','),
+    value: param.value,
   };
 };
 
diff --git a/api/src/engine/connectors/exareme/transformations.ts b/api/src/engine/connectors/exareme/transformations.ts
index b24b970..439f256 100644
--- a/api/src/engine/connectors/exareme/transformations.ts
+++ b/api/src/engine/connectors/exareme/transformations.ts
@@ -33,7 +33,7 @@ export const transformToExperiment = jsonata(`
     $params := ["y", "pathology", "dataset", "filter", "x"];
 
     $toArray := function($x) { $type($x) = 'array' ? $x : [$x]};
-
+    
     $convDate := function($v) { $type($v) = 'string' ? $toMillis($v) : $v };
 
     {
@@ -57,7 +57,7 @@ export const transformToExperiment = jsonata(`
                     algorithm.parameters[$not(name in $params)].({
                         "id": name,
                         "label": label,
-                        "value": $split(value, ',')
+                        "value": value
                     })
                 )
         }
diff --git a/api/src/engine/models/experiment/algorithm-parameter.model.ts b/api/src/engine/models/experiment/algorithm-parameter.model.ts
index 6db6757..d934ebd 100644
--- a/api/src/engine/models/experiment/algorithm-parameter.model.ts
+++ b/api/src/engine/models/experiment/algorithm-parameter.model.ts
@@ -5,8 +5,8 @@ export class AlgorithmParameter {
   @Field()
   id: string;
 
-  @Field(() => [String], { nullable: true })
-  value?: string[];
+  @Field({ nullable: true })
+  value?: string;
 
   @Field({ nullable: true })
   label?: string;
diff --git a/api/src/engine/models/experiment/input/algorithm-parameter.input.ts b/api/src/engine/models/experiment/input/algorithm-parameter.input.ts
index ce27f32..8cd3ec2 100644
--- a/api/src/engine/models/experiment/input/algorithm-parameter.input.ts
+++ b/api/src/engine/models/experiment/input/algorithm-parameter.input.ts
@@ -20,6 +20,6 @@ export class AlgorithmParamInput {
   })
   type?: ParamType;
 
-  @Field(() => [String])
-  value: string[];
+  @Field(() => String)
+  value: string;
 }
diff --git a/api/src/schema.gql b/api/src/schema.gql
index feb05a8..854bd5e 100644
--- a/api/src/schema.gql
+++ b/api/src/schema.gql
@@ -44,7 +44,7 @@ type Domain {
 
 type AlgorithmParameter {
   id: String!
-  value: [String!]
+  value: String
   label: String
   description: String
   defaultValue: String
@@ -233,7 +233,7 @@ input AlgorithmInput {
 input AlgorithmParamInput {
   id: String!
   type: ParamType = STRING
-  value: [String!]!
+  value: String!
 }
 
 enum ParamType {
-- 
GitLab