Хелперы
Хелперы – это специальные шаблоны действий, которые позволяют изменить переменные, например, преобразовать строку в массив, или выполнить дополнительную проверку данных, например, проверить рабочие часы.
Хелпер необходимо прописать в блоке Изменение данных. Для этого нужно создать переменную или модифицировать существующую. В качестве объектов изменения можно использовать как переменные, так и простые значения. При записи значений необходимо использовать одинарные кавычки.
Список хелперов:
CEIL
Округляет число в большую сторону (до целого).
Числа более 20 разрядов, с экспонентой или строки будут показывать ошибку.
Формат записи: {{CEIL variable}}
Пример, где переменная test = 2.344:
{{CEIL 5.344}} >>> 6
{{CEIL test}} >>> 3
{{CEIL -1.1}} >>> -1
FLOOR
Округляет число в меньшую сторону (до целого).
Числа более 20 разрядов, с экспонентой или строки будут показывать ошибку.
Формат записи: {{FLOOR variable}}
Пример, где переменная test = 2.344:
{{FLOOR 5.344}} >>> 5
{{FLOOR test}} >>> 2
{{FLOOR -1.1}} >>> -2
CHECK_HOURS
Проверяет, входит ли текущее время в указанный промежуток. Можно использовать для регуляции времени совершения звонков/переадресаций и т п. Для корректной работы рекомендуется использовать в комбинации с блоком Проверка данных.
Числа более 20 разрядов, с экспонентой или строки будут показывать ошибку.
Формат записи: {{CHECK_HOURS from to timezone type}}
, где:
From – время начала интервала (нижний порог)
To – время конца интервала (верхний порог)
Timezone – часовой пояс
Type – тип дня недели (опции: all – все дни недели, weekdays – будние дни, weekends – выходные)
Переменная с хелпером CHECK_HOURS может принимать значения 1 или 0.
Пример:
{{CHECK_HOURS '09:30''19:30''+3''weekdays'}} >>> 1 or 0
В данном примере переменная в будние дни с 9:30 утра до 19:30 вечера (по часовому поясу +3) будет принимать значение 1. В остальных случаях она будет принимать значение 0.
COMPARE
Сравнивает значение двух значений/переменных. Возможно использование следующих операторов сравнения:
'==' - равно
'!=' – не равно
'>' - больше
'<' - меньше
'<=' – меньше либо равно
'>=' – больше либо равно
'&&' - или
'||' - и
Хелпер может выполнять только одно сравнение за раз.
Формат записи: {{#COMPARE v1 operator v2}} if_true {{else}} if_false {{/COMPARE}}
, где:
V1 – что сравнивается
Operator – оператор
V2 – с чем сравнивается
If_true – вместо этого нужно записать ответ, который выйдет при выполнении условия
If_false – вместо этого нужно записать ответ, который выйдет при невыполненном условии
Необходимо явно указывать значения, которые возвращаются при выполнении сравнения (например, 'yes', если условие сравнения выполняется, и 'no' для других случаев).
Пример:
{{#COMPAREorder_found\'==\'\'yes\'}} order found {{else}} order not found {{/COMPARE}} >>> order found
CALC
Выполняет математические действия: сложение, вычитание, умножение, деление (осуществляется через символ '/'), возведение в степень (через символ '^') и остаток от деления (через символ '%'). Также присутствуют тригонометрические функции – sin, cos и tan.
Формат записи: {{#CALC}} equations {{/CALC}}
Переменные внутри хелпера необходимо указывать в двойных фигурных скобках.
Хелпер не может выполнить несколько вычислительных действий в одной записи. Действия необходимо разбивать на разные переменные.
Пример, где переменная price=10:
{{#CALC}} '+' {{price}} * 5'+'{{/CALC}} >>> 50
DATE_CONVERT
Выполняет преобразование даты из одного формата в другой.
В Voximplant Kit нет предписанных переменных, где содержится дата в каком-то формате. Ее нужно завести изначально вручную или взять из внешних источников.
Формат записи: {{DATE_CONVERT date old_format new_format}}
Доступные форматы дат с примерами отображения:
Новый формат | Результат |
MM/DD/YY | 01/23/18 |
MM/DD/YYYY | 01/23/2018 |
YY.MM.DD | 18.01.23 |
DD/MM/YY | 23/01/18 |
DD/MM/YYYY | 23/01/2018 |
DD.MM.YY | 23.01.18 |
DD.MM.YYYY | 23.01.2018 |
DD-MM-YY | 23-01-18 |
DD-MM-YYYY | 23-01-2018 |
HH:mm:SS | 12:00:00 |
MM-DD-YY | 01-23-18 |
MM-DD-YYYY | 01-23-2018 |
YY/MM/DD | 18/01/23 |
YYYY/MM/DD | 2018/01/23 |
YYMMDD | 180123 |
YYYYMMDD | 20180123 |
DD MMM | 23 Mar |
DD MMMM | 23 March |
DD MMMM YYYY | 23 March 2018 |
DD MMMM YY | 23 March 18 |
dddd, MMMM D, YYYY | Friday, March 23, 2018 |
HH:mm:ss.SSS | 13:20:00.000 |
M/D/YY | 3/23/18 |
MMM D, YYYY | Mar 23, 2018 |
MMMM D, YYYY | March 23, 2018 |
HH:mm:ss YY/MM/DD | 12:00:00 18/03/23 |
Пример, где исходная дата: 12:00 23.01.2018, исходный формат: HH:mm DD.MM.YYYY:
{{DATE_CONVERTorder_data\'HH:mm DD.MM.YYYY\'\'DD/MM/YYY\'}} >>> 25/12/2019
PLUCK
Создает новый массив из значений старого массива на основе ключа.
Формат записи: {{PLUCK array key value}}
Пример, где переменная array_sample = [{"id": 1, "value": "q"}, {"id": 2, "value": "w"}, {"id": 3, "value": "e"}]:
{{PLUCK array_sample 'id'}} >>> [1,2,3]
FILTERBY
Фильтрует данные массива по указанному параметру и его значению. Возвращается новый массив данных; исходные данные не меняются.
Формат записи: {{FILTERBY array key value}}
Пример, где переменная array_sample = [{"id": 1, "value": "q"}, {"id": 2, "value": "w"}, {"id": 1, "value": "e"}]:
{{FILTERBY array_sample 'id' 1}} >>> [{"id":1,"value":"q"},{"id":1,"value":"e"}]
FINDBY
Выдает первый элемент массива, удовлетворяющий заданному условию.
Формат записи: {{FINDBY array key value}}
Пример, где переменная array_sample = [{"id": 1, "value": "q"}, {"id": 2, "value": "w"}, {"id": 3, "value": "e"}]:
{{FINDBY array_sample 'id' 1}} >>> {"id": 1, "value": "q"}
JOIN
Преобразует массив в строку с указанным разделителем.
Формат записи: {{JOIN array separator}}
Пример, где переменная test = ["summer","autumn","winter","spring"]:
{{JOIN test '|'}} >>> summer|autumn|winter|spring
LENGTH
Отображает длину строки/массива.
Формат записи: {{LENGTH str}}
Массивы со значениями в одинарных кавычках ['1', '2', '3'] будут подсчитываться как строка.
Пример, где переменная test_str = 'text example'; variable test_array = ["apple", "banana", "carrot", "coconut"]; variable test_obj = {"key1": 1, "key2": 2, "key3": 3}:
{{LENGTH test_str}} >>> 12
{{LENGTH test_array}} >>> 4
{{LENGTH test_obj}} >>> 3 (number of keys)
LOWERCASE
Преобразует строку в нижний регистр.
Формат записи: {{LOWERCASE str}}
Пример, где переменная test = 'WONDERFUL order':
{{LOWERCASE test}} >>> wonderful order
UPPERCASE
Преобразует строку в верхний регистр.
Формат записи: {{UPPERCASE str}}
Пример, где переменная test = 'WONDERFUL order':
{{UPPERCASE test}} >>> WONDERFUL ORDER
PHONE_FORMAT
Убирает из строки любые символы, кроме цифр.
Формат записи: {{PHONE_FORMAT str}}
Пример, где переменная test = '+1-474 000 00-00':
{{PHONE_FORMAT test}} >>> 14740000000
REPLACE
Заменяет одно значение другим в указанной строке.
Формат записи: {{REPLACE str A B}}
Если какие-то заменяемые значения повторяются, то они будут заменены все. Например, при замене 'John' на 'Jack' в переменной, где содержится 'John Johnson', получится 'Jack Jackson'.
Пример, где переменная test = 'John':
{{REPLACE 'Hello, my name is NAME''NAME'test}} >>> Hello, my name is John
REVERSE
Располагает значение строки/массива в обратном порядке.
Формат записи: {{REVERSE variable}}
Пример, где переменная test_str = 'Some text'; переменная test_arr = [1,2,3,4,5]:
{{REVERSE test_str}} >>> txet emoS
{{REVERSE test_arr}} >>> [5,4,3,2,1]
SORT
Сортирует значения массива по возрастанию. Сначала сортируются цифры, затем буквы.
Формат записи: {{SORT array}}
Для сортировки по убыванию можно использовать запись {{SORT array reverse=1}}.
Пример, где переменная test_array = ['banana', 'apple', 'coconut', 'carrot']:
{{SORT test_array}} >>> ["apple","banana","carrot","coconut"]
{{SORT test_array reverse=1}} >>> ["coconut","carrot","banana","apple"]
SORTBY
Сортирует значения массива по указанному аргументу. Сортировка производится по возрастанию. Аналогично с SORT можно использовать опцию reverse=1 для сортировки по убыванию.
Формат записи: {{SORTBY array key}}
Пример, где переменная array_sample = [{"id": 1, "value": "z"}, {"id": 2, "value": "a"}, {"id": 1, "value": "x"}]:
{{SORTBY array_sample 'value'}} >>> [{"id":2,"value":"a"},{"id":1,"value":"x"},{"id":1,"value":"z"}]
SPLIT
Преобразует строку в массив с указанием разделителя.
Формат записи: {{SPLIT str separator}}
Пример, где переменная test = 'summer;autumn;winter;spring':
{{SPLIT test';'}} >>> ["summer","autumn","winter","spring"]
SUBSTRING
Обрезает строку с указанием начального и конечного индекса (опционально).
Формат записи: {{SUBSTRING start end}}
Пример, где переменная someString = 'some string', обрезать с 0 по 4 символ:
{{SUBSTRING someString 0 4}} >>> some
Пример, где переменная someString = 'some string', обрезать, начиная с 4 символа:
{{SUBSTRING someString 5 undefined}} >>> string
CURRENT_DATE
Возвращает текущую дату и время в формате YYYY-MM-DD hh:mm:ss с возможностью указания часового пояса (без указания часового пояса возвращает дату и время по часовому поясу аккаунта).
Формат записи: {{CURRENT_DATE timezone}}
Пример, где timezone = 3:
{{CURRENT_DATE 3}} >>> текущие дата и время по GMT+3
Пример, где timezone не указана:
{{CURRENT_DATE undefined}} >>> текущие дата и время в часовом поясе аккаунта