1
0
Fork 0
mirror of https://github.com/betagouv/mon-entreprise synced 2025-02-09 04:05:01 +00:00
mon-entreprise/source/engine/controls.js
2019-03-19 16:55:38 +01:00

25 lines
601 B
JavaScript

import { evaluateNode } from 'Engine/evaluation'
import { values, unnest, filter, map, pipe, path } from 'ramda'
let getControls = path(['explanation', 'contrôles'])
export let evaluateControls = (cache, situationGate, parsedRules) =>
pipe(
values,
filter(getControls),
map(rule =>
getControls(rule).map(
control =>
!rule.inactiveParent && {
...control,
evaluated: evaluateNode(
cache,
situationGate,
parsedRules,
control.testExpression
)
}
)
),
unnest,
filter(control => control.evaluated.nodeValue === true)
)(cache)