diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index 593a44d1f4af5e744886ea50ccaaab85b2d2e0bd..06950abbd99852ee98e9745e63c1a20b4730d9b8 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 5733366f9125337a555ff7f7df7faad52dae6627..ffd1daf11b65456986db78aa5a7ed8d5d6d1bb20 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) ?? + [], }; }