[bot][A] MAX: webhook, отправка напоминаний и инструкция подключения #83
Notifications
Due Date
No due date set.
Depends on
#82 [backend][B] MAX: привязка пациента, очередь уведомлений и серверный API
MedITron/PTSRaiAgent
Reference: MedITron/PTSRaiAgent#83
Reference in New Issue
Block a user
Описание
Подготовить серверный адаптер MAX для человека, который позже создаст бота. Проверять X-Max-Bot-Api-Secret; принимать bot_started/message_created/bot_stopped/dialog_removed; команды /start, /stop, /help. Привязка через одноразовый код с сайта, приватные диалоги. Обёртка outbox доставляет нейтральное уведомление с кнопкой сайта и сохраняет существующий канал. Рабочий процесс отправляет из долговечной очереди с повторами; прекращает отправку после отключения/отзыва согласия. CLI для проверки бота и регистрации webhook, инструкция с переменными и примерами API. Без реальных токенов, внешних отправок и интерфейса сайта. Файлы: app/channels/max_.py, config/texts/max.yaml, tests/test_max. Проверить HTTP-контракт MAX, дубликаты событий, ошибки, /stop, согласие, совместимость с текущим outbox и make lint test.
Желаемый результат
Проверенная серверная заготовка, отключённая до внесения токена и адресов. Создание бота, личная верификация MAX и изменения web-интерфейса не входят в задачу.
Как проверить
make lint && make test; целевые тесты с MockTransport и отдельными SQLite-базами.
Лог выполнения
2026-10-04
Готов адаптер уведомлений MAX: webhook, одноразовая привязка, /help и /stop, доставка через официальный Bot API, повторные попытки, фильтрация личных событий. Включены уведомления о завершении тестов и напоминания планировщика; медицинские ответы/результаты в MAX не отправляются. Добавлены команды настройки и инструкция app/channels/MAX_SETUP.md. Проверено с подменённым HTTP: make lint test — 1030 passed, 1 skipped. Бот не создавался, реальная отправка не включалась.