Манифест кастомного блока проверяется на соответствие данных при загрузке в приложение.
API POST /vertex
Если манифест не проходит проверку, то все ошибки записываются в массив и возвращаются в виде ответа HTTP 400:
{
"type": "validation",
"messages": []
}
Параметр «messages» представляет из себя массив, который содержит все ошибки, обнаруженные при валидации. Каждый элемент массива содержит:
- ключ - путь до элемента в редакторе, который не прошел валидацию;
- значение - текстовое описание ошибки.
Примеры:
- 'editor.sections.0.fields': 'is required'
- 'editor.sections.0.fields.1.type': 'unknown type'
- 'editor.sections.0.fields.1.name: 'not unique'
- 'editor.sections.0.fields.1.visible.conditions.0.fieldName': 'invalid value’'
В случае любой ошибки при выполнении кастомного блока:
- ошибка логируется;
- работа блока завершается;
- чат-бот переходит к следующему блоку.
Правила валидации:
- Свойство 'title' секции имеет тип «string». Необязательное, может быть пустой строкой или null. Максимальная длина 65500.
- Свойство 'name' секции имеет тип «string». Обязательное поле. Уникально в рамках всего манифеста. Кроме того, названия секций не могут пересекаться с названиями полей. Максимальная длина 65500.
- Свойство 'fields' секции имеет тип «array». Обязательное, может бытьпустой массив.
- Свойство 'name' поля имеет тип «string». Обязательное поле. Уникально в рамках всего манифеста (для секции и полей), за исключения полей, описываемых в {type=blockList}.form. Поля, описываемые в {type=blockList}.form, имеют свою область видимости и поэтому там свойство name может пересекаться со свойством name в секции/поле. Максимальная длина 65500.
- Свойство 'title' поля имеет тип «string». Необязательное, может быть пустой строкой или null. Максимальная длина 65500.
- Свойство 'type' поля имеет тип «string». Обязательное. Может иметь следующие значения: 'text'|'variable'|'select'|'blockList'.
- Поле с типом 'text' состоит из свойств: 'name', 'title', 'defaultValue'.
- Свойство 'defaultValue' для поля с типом «text» имеет тип «string». Необязательное. Максимальная длина 65500.
- Поле с типом 'variable' состоит из свойств: 'name', 'title', 'defaultValue'.
- Свойство 'defaultValue' для поля с типом 'variable' имеет тип «string». Должно соответствовать регулярному выражению [a-zA-Z0-9]. Необязательное. Максимальная длина 65500.
- Поле с типом 'select' состоит из свойств: 'name', 'title', 'defaultValue', 'options', 'searchable'.
- Свойство 'options' для поля с типом 'select' имеет тип «array». Обязательное. Может быть пустым. Каждый элемент массива должен содержать свойства: 'text' - string|nullable и 'value' - string|nullable. Значение свойства 'value' должно быть уникальными в пределах элементов 'options'. Максимальная длина 65500.
- Свойство 'defaultValue' для поля с типом 'select' имеет тип «string». Необязательное. Значение должно быть одним из значений свойства 'value' элемента массива 'options'
- Свойство 'searchable' для поля с типом 'select' имеет тип «boolean». Необязательное.
- Поле с типом 'blockList' состоит из свойств: 'name', 'title', 'addButtonTitle', 'defaultValue', 'form'.
- Свойство 'addButtonTitle' для поля с типом 'blockList' имеет тип «string». Необязательное. Максимальная длина 65500.
- Свойство 'form' для поля с типом 'blockList' имеет тип «array». Обязательное, пустой массив не может быть. Допустимые типы полей 'text'|'variable'|'select'.
- Свойство 'defaultValue' для поля с типом 'blockList' имеет тип «array».Необязательное. Каждый элемент - это структура, в которой описаны значения для полей из свойства 'form'. Элемент - это массив, у которого ключ = свойству 'name' из 'form', а значение - это то, чем будет заполнено значение поля из 'form'. В элементе должны быть полностью заполнены все поля из свойства 'form'.
- Свойство 'visible' для секций и для полей (кроме полей, которые определены в {type=blockList}.form) имеет тип «array». Необязательное.
- Свойство 'visible' имеет структуру:
-
- 'conditions' - массив. Обязательное. Не может быть пустым массивом. Элемент массива состоит из обязательных ключей:
- name - тип «string». Обязательное. Уникально внутри своего массива conditions.
- fieldName - тип «string». Обязательное. Значение fieldName должно быть одним из значений name поля в секциях (кроме полей, которые определены в {type=blockList}.form).
- operator - тип «string». Обязательное. Значения - это одно из значений словаря операторов. На данный момент может иметь только значение 'is equal to'.
- value - тип «string». Обязательное. Максимальная длина 65500.
- 'result' тип «2string». Обязательное.
Комментарии
0 комментариев
Войдите в службу, чтобы оставить комментарий.