...
Блок кода | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
/** * Реализация действий до отображения диалога и после */ public interface DialogProcessing { /** * Ключ для хранение id договора, который будет сохранён в кэше бота, как авторизованный договор */ String CONTRACT_ID = "contractId"; /** * Сообщение об ошибке */ String ERROR_MESSAGE = "responseErrorMessage"; /** Удалить привязку договора к чату */ String REMOVE_CONTRACT = "idContractRemove"; /** ID нового диалога, на который нужно перенаправить пользователя */ String NEXT_DIALOG_ID = "nextDialogId"; /** * Макросы для элементов диалога с типом Текст. * Для добавления нужно создать JSONObject, в котором ключи должныть быть самими макросами, * а значение - содержимое, которое нужно установить */ String MACROS = "macros"; /** * Предобработка перед отображением диалога пользователю * @param botData пользовательские данные для определённого диалога */ void preDialog( ServerContext serverContext, JSONObject botData ) throws BGException; /** * Обработка сообщений от пользователя в момент, когда диалог отображён на экране. * @param botData пользовательские данные для определённого диалога * @param inputTextOfUser данные от пользователя */ void processDialog( ServerContext serverContext, JSONObject botData, String inputTextOfUser ) throws BGException; /** * @return читабельное название данного класса для понятного отображения в интерфейсе модуя */ String title(); } |
Свою реализацию указать для диалога можно в реакторе диалога, где после нажатия на "Выбрать класс-обработчик" будет отображена панель с списком классов из дин.кода, которые реализуют интерфейс DialogProcessing
Раскрыть | ||
---|---|---|
| ||
Как пример реализации интерфейса DialogProcessing ниже приведён пример класса-реализации логики авторизации пользователя по названию договора. Данный класс отрабатывает после запроса названия договора от пользователя, полученный текст передаётся в метод processDialog(), в котором происходит поиск договора и в случае, если договор был найден, указывается, что следующим диалогом должен быть показан заранее созданный диалог с запросом пароля от личного кабинета.
...