Отмена напоминаний
Это часть серии статей, посвященной созданию бота для отправки напоминаний через сервис $pushgate
.
- Уточнение часового пояса
- Создание напоминаний
- Отмена напоминаний (вы находитесь здесь)
Разработка сценария
Добавим в бота, разработанного на предыдущем шаге, возможность отменять созданные напоминания до их наступления.
Вновь перейдите на вкладку NLU > Интенты, добавьте новый интент /Cancel
и наполните его такими тренировочными фразами, как отменить, не надо, я передумал.
Перейдем к разработке сценария:
state: Cancel
intent!: /Cancel
if: $session.reminderId
script:
$pushgate.cancelEvent($session.reminderId);
delete $session.reminderId;
random:
a: Я отменил ваше последнее напоминание.
a: Последнее напоминание успешно отменено.
else:
go!: /CatchAll
В стейте, предназначенном для обработки интента, предусмотрено ветвление в зависимости от наличия в структуре данных $session
поля reminderId
:
- Если поле присутствует, то ранее записанный в него идентификатор события передается в метод
$pushgate.cancelEvent
. Событие отменяется, а его идентификатор удаляется из$session
. - Если такого поля нет, клиент либо еще не создавал ни одного напоминания, либо только что его удалил. В обоих случаях приемлемо перейти в стейт
/CatchAll
.
Тестирование сценария
С помощью тестового виджета убедитесь, что после отмены событие не приходит в сценарий:
подсказка
В приведенной реализации бот умеет отменять только последнее созданное напоминание. Мы предлагаем вам реализовать возможность отмены любого из запланированных напоминаний самостоятельно.