Этот action позволяет делать ветвление в зависимости от состояния переменных в state
Пример самой простой конфигурации, так называемое «простое условие»:
{
"if": {
"{{total}}>3": "gt3",
"event": "gt3"
}
}
Здесь мы делаем одно единственное условие - если параметр больше константы, action вернет событие
Если вы хотите сравнивать текстовые плейсхолдеры с текстовыми же значениями то нужно брать строки в 'одинарные кавычки' вот так
{
"if": {
"'{{name}}'=='John'": "ok",
"event": "ok"
}
}
Для сравнения логических типов - true/false просто пишем true или false без кавычек
{
"if": {
"{{is_valid}}==true: "ok",
"event": "ok"
}
}
<aside> 🚧 Сравнение дат, regexp, кванторы и другие варианты сравнения в планах но пока не реализованы, если вам не хватает какой-то возможности - напишите нам
</aside>
Action может также устанавливать другие плейсхолдеры, для этого используйте параметр set
{
"if": {
"{{currency_mapped_obj.total}}>3": "gt3",
"event": "gt3",
"set": {
"newplaceholder": "(({{currency_mapped_obj.total}}*2))"
}
}
}
Можно также указать elseif
блок (только 1)
{
"if": {
"{{currency_mapped_obj.total}}>3": "gt3",
"event": "gt3",
"set": {
"newplaceholder": "(({{currency_mapped_obj.total}}*2))"
}
},
"elseif": {
"{{placeholder2}}!=1":"ne1",
"event": "ne1",
}
}
Если нужно построить логику «И» (выполняются все условие) или «ИЛИ» (выполняется хотя бы одно из условий), простые условия придется заменить более сложными конструкциями
{
"if": {
"and": [
"{{currency_mapped_obj.total}}>=1",
"{{currency_mapped_obj.total}}<=2"
],
"event": "e2",
"set": {
"placeholder2": "e2"
}
}
}
Используются массивы
and
для логики И, or
для логики ИЛИevent
И все это можно объединить в одну большую конфигурацию