From 6bd8c8b0c32f1bb560d0f4319c851cb15004875d Mon Sep 17 00:00:00 2001
From: stevereis <stevereis93@gmail.com>
Date: Tue, 9 Nov 2021 09:00:13 +0100
Subject: [PATCH] Replace name by id (for algorithm)

---
 api/src/engine/connectors/exareme/converters.ts    | 14 ++++++--------
 .../engine/connectors/exareme/transformations.ts   | 10 +++++-----
 .../models/experiment/algorithm-parameter.model.ts |  2 +-
 .../engine/models/experiment/algorithm.model.ts    |  2 +-
 .../experiment/input/algorithm-parameter.input.ts  |  2 +-
 .../models/experiment/input/algorithm.input.ts     |  2 +-
 6 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts
index 0f0b8ff..41d9fce 100644
--- a/api/src/engine/connectors/exareme/converters.ts
+++ b/api/src/engine/connectors/exareme/converters.ts
@@ -1,7 +1,7 @@
 import { Category } from 'src/engine/models/category.model';
-import { AlgorithmParameter } from 'src/engine/models/experiment/algorithm-parameter.model';
 import { Algorithm } from 'src/engine/models/experiment/algorithm.model';
 import { Experiment } from 'src/engine/models/experiment/experiment.model';
+import { AlgorithmParamInput } from 'src/engine/models/experiment/input/algorithm-parameter.input';
 import { ExperimentCreateInput } from 'src/engine/models/experiment/input/experiment-create.input';
 import { Group } from 'src/engine/models/group.model';
 import { ResultUnion } from 'src/engine/models/result/common/result-union.model';
@@ -56,10 +56,10 @@ export const dataToVariable = (data: VariableEntity): Variable => {
   };
 };
 
-const algoParamInputToData = (param: AlgorithmParameter) => {
+const algoParamInputToData = (param: AlgorithmParamInput) => {
   return {
-    name: param.name,
-    label: param.name,
+    name: param.id,
+    label: param.id,
     value: param.value.join(','),
   };
 };
@@ -90,7 +90,7 @@ export const experimentInputToData = (data: ExperimentCreateInput) => {
         },
       ].concat(data.algorithm.parameters.map(algoParamInputToData)),
       type: data.algorithm.type ?? 'string',
-      name: data.algorithm.name,
+      name: data.algorithm.id,
     },
     name: data.name,
   };
@@ -132,9 +132,7 @@ export const dataToExperiment = (data: ExperimentData): Experiment => {
   };
 
   exp.results = data.result
-    ? data.result
-        .map((result) => dataToResult(result, exp.algorithm.name))
-        .flat()
+    ? data.result.map((result) => dataToResult(result, exp.algorithm.id)).flat()
     : [];
 
   return exp;
diff --git a/api/src/engine/connectors/exareme/transformations.ts b/api/src/engine/connectors/exareme/transformations.ts
index ac5bcb8..5940599 100644
--- a/api/src/engine/connectors/exareme/transformations.ts
+++ b/api/src/engine/connectors/exareme/transformations.ts
@@ -10,11 +10,11 @@ export const transformToAlgorithms = jsonata(`
     $toArray := function($x) { $type($x) = 'array' ? $x : [$x]};
 
     *.{
-    'name': name,
+    'id': name,
     'label': label,
     'description': desc,
     'parameters': $toArray(parameters[$not(name in $params)].{
-        'name': name,
+        'id': name,
         'description': desc,
         'label': label,
         'type': valueType,
@@ -44,15 +44,15 @@ export const transformToExperiment = jsonata(`
         "finishedAt": finished,
         "shared": shared,
         "updateAt": updated,
-        "domains": algorithm.parameters[name = "pathology"].value,
+        "domain": algorithm.parameters[name = "pathology"].value,
         "variables": $split(algorithm.parameters[name = "y"].value, ','),
         "filter": algorithm.parameters[name = "filter"].value,
         "datasets": $split(algorithm.parameters[name = "dataset"].value, ','),
         "algorithm": {
-            "name": algorithm.name,
+            "id": algorithm.name,
             "parameters" : $toArray(
                     algorithm.parameters[$not(name in $params)].({
-                        "name": name,
+                        "id": name,
                         "label": label,
                         "value": $split(value, ',')
                     })
diff --git a/api/src/engine/models/experiment/algorithm-parameter.model.ts b/api/src/engine/models/experiment/algorithm-parameter.model.ts
index d5db6bf..6db6757 100644
--- a/api/src/engine/models/experiment/algorithm-parameter.model.ts
+++ b/api/src/engine/models/experiment/algorithm-parameter.model.ts
@@ -3,7 +3,7 @@ import { Field, ObjectType } from '@nestjs/graphql';
 @ObjectType()
 export class AlgorithmParameter {
   @Field()
-  name: string;
+  id: string;
 
   @Field(() => [String], { nullable: true })
   value?: string[];
diff --git a/api/src/engine/models/experiment/algorithm.model.ts b/api/src/engine/models/experiment/algorithm.model.ts
index ec26d74..818b3c9 100644
--- a/api/src/engine/models/experiment/algorithm.model.ts
+++ b/api/src/engine/models/experiment/algorithm.model.ts
@@ -4,7 +4,7 @@ import { AlgorithmParameter } from './algorithm-parameter.model';
 @ObjectType()
 export class Algorithm {
   @Field()
-  name: string;
+  id: string;
 
   @Field(() => [AlgorithmParameter], { nullable: true, defaultValue: [] })
   parameters?: AlgorithmParameter[];
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 8eb4cb2..9b550ae 100644
--- a/api/src/engine/models/experiment/input/algorithm-parameter.input.ts
+++ b/api/src/engine/models/experiment/input/algorithm-parameter.input.ts
@@ -3,7 +3,7 @@ import { Field, InputType } from '@nestjs/graphql';
 @InputType()
 export class AlgorithmParamInput {
   @Field()
-  name: string;
+  id: string;
 
   @Field(() => [String])
   value: string[];
diff --git a/api/src/engine/models/experiment/input/algorithm.input.ts b/api/src/engine/models/experiment/input/algorithm.input.ts
index 54d26b7..d87abd4 100644
--- a/api/src/engine/models/experiment/input/algorithm.input.ts
+++ b/api/src/engine/models/experiment/input/algorithm.input.ts
@@ -4,7 +4,7 @@ import { AlgorithmParamInput } from './algorithm-parameter.input';
 @InputType()
 export class AlgorithmInput {
   @Field()
-  name: string;
+  id: string;
 
   @Field(() => [AlgorithmParamInput], { nullable: true, defaultValue: [] })
   parameters: AlgorithmParamInput[];
-- 
GitLab