From c330b3fb176c6038e3b5425c99d49b3a099026a3 Mon Sep 17 00:00:00 2001 From: stevereis <stevereis93@gmail.com> Date: Sun, 23 Jan 2022 20:41:13 +0100 Subject: [PATCH] fix: Catch convert problem jsonata (exareme) --- .../engine/connectors/exareme/converters.ts | 35 ++++++++++++------- .../connectors/exareme/main.connector.ts | 4 ++- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index 593a44d..06950ab 100644 --- a/api/src/engine/connectors/exareme/converters.ts +++ b/api/src/engine/connectors/exareme/converters.ts @@ -167,19 +167,28 @@ export const descriptiveDataToTableResult = ( return [result]; }; -export const dataToExperiment = (data: ExperimentData): Experiment => { - const expTransform = transformToExperiment.evaluate(data); - - const exp: Experiment = { - ...expTransform, - results: [], - }; - - exp.results = data.result - ? data.result.map((result) => dataToResult(result, exp.algorithm.id)).flat() - : []; - - return exp; +export const dataToExperiment = ( + data: ExperimentData, +): Experiment | undefined => { + try { + const expTransform = transformToExperiment.evaluate(data); + + const exp: Experiment = { + ...expTransform, + results: [], + }; + + exp.results = data.result + ? data.result + .map((result) => dataToResult(result, exp.algorithm.id)) + .flat() + : []; + + return exp; + } catch (e) { + //TODO : Add logger can't convert experiment + return undefined; + } }; export const dataToAlgorithms = (data: string): Algorithm[] => { diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts index 5733366..ffd1daf 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -74,7 +74,9 @@ export default class ExaremeService implements IEngineService { return { ...resultAPI.data, - experiments: resultAPI.data.experiments?.map(dataToExperiment) ?? [], + experiments: + resultAPI.data.experiments?.map(dataToExperiment).filter((r) => r) ?? + [], }; } -- GitLab