🐛 Enlève la logique de safe valeur par défaut pour le mécanisme synchronisation

C'est logiquement à la couche "data" de se charger de spécifier les valeurs par défaut si besoin.
Publicodes doit juste chercher la clé, et retourner null si elle n'existe pas dans l'objet.
pull/1478/head
Johan Girod 2021-05-06 12:27:33 +02:00
parent b5c1f0b1fa
commit 6cabf21625
1 changed files with 2 additions and 8 deletions

View File

@ -16,20 +16,14 @@ const evaluate: EvaluationFunction<'synchronisation'> = function (node: any) {
const valuePath = node.explanation.chemin.split(' . ')
const path = (obj) => valuePath.reduce((res, prop) => res[prop], obj)
const nodeValue = data.nodeValue == null ? null : path(data.nodeValue)
// If the API gave a non null value, then some of its props may be null (the
// API can be composed of multiple API, some failing). Then this prop will be
// set to the default value defined in the API's rule
const safeNodeValue =
nodeValue == null && data.nodeValue != null
? path(data.explanation.defaultValue)
: nodeValue
const missingVariables = {
...data.missingVariables,
...(data.nodeValue === null ? { [data.dottedName]: 1 } : {}),
}
const explanation = { ...node.explanation, data }
return { ...node, nodeValue: safeNodeValue, explanation, missingVariables }
return { ...node, nodeValue, explanation, missingVariables }
}
export const mecanismSynchronisation = (v, context) => {