Condition
Blocco che valuta delle regole sull'oggetto in ingresso: lo manda all'uscita Valid se le regole sono rispettate, a Invalid altrimenti.
A cosa serve
Divide il grafo in due rami. Quando l'oggetto rispetta le regole esce da Valid, altrimenti da Invalid: solo una delle due uscite emette e i blocchi collegati all'altra non vengono eseguiti. È il modo per fare un se/altrimenti, validare un ingresso o rispondere in modo diverso a seconda dei dati.
Ingressi
| Porta | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
Data (data) | object | sì | L'oggetto da controllare, di solito il corpo della richiesta. |
Uscite
| Porta | Tipo | Descrizione |
|---|---|---|
Valid (valid) | object | Lo stesso oggetto, quando le regole sono rispettate. |
Invalid (invalid) | object | Lo stesso oggetto, quando non lo sono. |
Exception (exception) | object | Uscita presente in ogni blocco: se il blocco fallisce emette l'errore invece di fermare la funzione. |
Impostazioni
| Impostazione | Tipo | Predefinito | Descrizione |
|---|---|---|---|
Mode (mode) | select | all | all: servono tutte le regole (AND). any: ne basta una (OR). |
Rules (rules) | json | [] | Elenco di {"field", "op", "value"}. Operatori: == != > >= < <= contains exists. |
Comportamento e limiti
- Senza regole l'oggetto è sempre valido.
- Emette una sola delle due uscite: i blocchi collegati all'altra non vengono eseguiti.
- Se l'uscita Exception non è collegata, un errore ferma la funzione, a meno che il grafo non abbia un blocco Exception.
Esempi
Ordine sopra una soglia
Ingressi
{
"data": {
"total": 50
}
}Impostazioni
{
"rules": [
{
"field": "total",
"op": ">",
"value": 10
}
]
}Uscite
{
"valid": {
"total": 50
}
}Campo obbligatorio mancante
Ingressi
{
"data": {
"name": "Mario"
}
}Impostazioni
{
"rules": [
{
"field": "email",
"op": "exists"
},
{
"field": "name",
"op": "exists"
}
]
}Uscite
{
"invalid": {
"name": "Mario"
}
}Ne basta una (OR)
Ingressi
{
"data": {
"role": "admin",
"owner": false
}
}Impostazioni
{
"mode": "any",
"rules": [
{
"field": "role",
"op": "==",
"value": "admin"
},
{
"field": "owner",
"op": "==",
"value": true
}
]
}Uscite
{
"valid": {
"role": "admin",
"owner": false
}
}Consigli
- Il valore di una regola è JSON:
10è un numero,"10"un testo, e un testo e un numero non sono mai uguali. - Collega Valid e Invalid a due blocchi Response per rispondere in modo diverso nei due casi.
Usato in
- Validare il corpo di una richiesta In preparazione
Vedi anche
- Compare In preparazione
- Response In preparazione
- Funzioni e LogicBlocks