Описание реализованных интеграций со смежными системами:
с сервисом weatherbit.io
Для запроса информации о погоде на конкретную дату используется ресурс weatherbit.io. К нему делаются Rest API запросы.
В файе func.js запрос реализован с помощью функции getWeather. Она запрашивает данные о погоде и возвращает параметры прогноза или информацию о неудаче:
В переменных сохраняются значение температуры, скорость ветра, порывы ветра и тип погоды (ясно, пасмурно, облачно, осадки, туман и т.д.).
Подобным образом реализован и запрос исторических данных о погоде с помощью функции getHistoricalWeather:
отправка заявки на почту менеджеру с данными клиента
За отправку данных на почту в коде отвечает функция email:
Первым этапом формируется заявку с данными полученными ранее от пользователя:
Далее заявка отправляется на почту менеджеру, используя встроенный сервис $mailи метод send $mail.send :
from - адрес e-mail отправителя
to - адрес e-mail менеджера (получателя)
subject - тема письма, в нашем случае это: “Заявка от клиента + [имя клиента]”
content - текст письма, в нашем случае он включает в себя: имя клиента, контактный номер клиента, пункт назначения (желаемая страна или город для путешествия), желаемую дату начала поездки, длительность поездки, количество туристов и детей, бюджет на одного взрослого, желаемый уровень отеля (количество звезд) и комментарий для менеджера.
smtpHost - ретранслятор между серверами отправителя и адресата
smtPort - порт 465 (с защищенным SSL-соединением)
user - фактический адрес почтового ящика отправителя
password - пароль от почтового ящика.
Ответы сервиса обрабатываются в стейте /SendMail/Mail
Если заявка была отправлена и получен ответ {”status” : “OK”}, информируем пользователя об успешной отправке заявки, говорим, что с ним в ближайшее время свяжется менеджер компании, и бот завершает чат.
Если при отправке от сервиса был получен ответ {”status” : “UNABLE_TO_CONNECT”} или {”status” : “INCORRECT_ADDRESS”}, то бот выводит номер телефона туроператора и завершает чат.
Want to print your doc? This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (