diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index 2bca814cc537ecf120b1756f935ba42883c75108..2c7b7c568b9e47f0721592612f81ef5ca1918091 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,