- Добавлена полная интеграция с Telegram Mini App (динамическая загрузка SDK) - Отдельный компактный дизайн для Telegram Mini App - Добавлен loader при инициализации (предотвращает мелькание SMS-авторизации) - Улучшена навигация: кнопки "Назад" и "К списку заявок" теперь сохраняют авторизацию - Telegram Mini App: кнопка "Выход" просто закрывает приложение - Telegram Mini App: заявки "В работе" скрыты из списка - Веб-версия: для заявок "В работе" добавлена кнопка "Просмотреть в Telegram" (ссылка на @klientprav_bot) - Telegram Mini App: кнопки действий в черновиках расположены вертикально - Веб-версия: убрано отображение номера телефона в приветствии - Исправлена проблема с возвратом к списку черновиков (не требует повторной SMS-авторизации) - Заблокировано удаление и редактирование заявок со статусом "В работе" - Добавлена документация по Telegram Mini App интеграции
104 lines
4.0 KiB
Markdown
104 lines
4.0 KiB
Markdown
# Отображение запрошенных рейсов без данных
|
||
|
||
## Проблема
|
||
|
||
Когда данных о рейсе нет, нужно показывать, по какому рейсу и запросу информация отсутствует.
|
||
|
||
## Решение
|
||
|
||
Код автоматически извлекает информацию о запрошенных рейсах и показывает их даже если данных нет.
|
||
|
||
## Способы передачи информации о запрошенных рейсах
|
||
|
||
### Вариант 1: Прямая передача (рекомендуется)
|
||
|
||
В предыдущей ноде (перед Code Node) добавьте информацию о запрошенных рейсах:
|
||
|
||
```javascript
|
||
// В Code Node перед "причесываем данные"
|
||
return [{
|
||
json: {
|
||
// Ваши данные
|
||
...existingData,
|
||
|
||
// Информация о запрошенных рейсах
|
||
requested_flights: ['MU747', 'CES747'], // Массив номеров рейсов
|
||
// ИЛИ
|
||
flight_number: 'MU747', // Один рейс
|
||
// ИЛИ
|
||
flight_numbers: ['MU747', 'CES747'] // Альтернативный формат
|
||
}
|
||
}];
|
||
```
|
||
|
||
### Вариант 2: Автоматическое извлечение
|
||
|
||
Код автоматически пытается извлечь информацию о рейсах из:
|
||
- URL запросов (параметры `ident`, `flight_number`, `flight`, `callsign`)
|
||
- Query параметров
|
||
- Body запросов
|
||
- Прямых полей в JSON
|
||
|
||
## Что отображается
|
||
|
||
Если рейс был запрошен, но данных нет, показывается карточка:
|
||
|
||
```
|
||
┌─ Рейс MU747 ───────────────┐
|
||
│ Запрошен │
|
||
│ │
|
||
│ Запрошенный рейс: MU747 │
|
||
│ │
|
||
│ [FlightAware] │
|
||
│ ✗ Данные не получены │
|
||
│ │
|
||
│ [FlightRadar24] │
|
||
│ ✗ Данные не получены │
|
||
└────────────────────────────┘
|
||
```
|
||
|
||
## Пример использования
|
||
|
||
### В предыдущей ноде (HTTP Request или Code Node):
|
||
|
||
```javascript
|
||
// После запросов к FlightAware и FlightRadar24
|
||
return [{
|
||
json: {
|
||
data: [
|
||
{ body: { flights: [...] } }, // FlightAware ответ
|
||
{ body: { data: [...] } } // FlightRadar24 ответ
|
||
],
|
||
// Добавляем информацию о запрошенных рейсах
|
||
requested_flights: ['MU747', 'CES747']
|
||
}
|
||
}];
|
||
```
|
||
|
||
### Или в отдельной ноде перед обработкой:
|
||
|
||
```javascript
|
||
// Code Node: Prepare Request Info
|
||
const flightNumbers = ['MU747', 'CES747']; // Из вашего запроса
|
||
|
||
return [{
|
||
json: {
|
||
requested_flights: flightNumbers,
|
||
// Другие данные...
|
||
}
|
||
}];
|
||
```
|
||
|
||
## Преимущества
|
||
|
||
✅ **Прозрачность** - видно, какие рейсы запрашивались
|
||
✅ **Отладка** - легко понять, почему данных нет
|
||
✅ **Информативность** - пользователь видит, что запрос был выполнен
|
||
✅ **Автоматика** - код пытается извлечь информацию автоматически
|
||
|
||
## Если данные всё равно не показываются
|
||
|
||
1. Проверьте, что передаёте `requested_flights` в предыдущей ноде
|
||
2. Убедитесь, что формат правильный: массив строк или объект с полем `flight_number`
|
||
3. Проверьте логи в Code Node - там будут сообщения о найденных запрошенных рейсах
|