- Добавлены логи в frontend (ClaimForm.tsx) для отслеживания unified_id и запросов к API - Добавлены логи в backend (claims.py) для отладки SQL запросов - Создан лог сессии с описанием проблемы и текущего состояния - Проблема: API возвращает 0 черновиков, хотя в БД есть данные
118 lines
2.9 KiB
Markdown
118 lines
2.9 KiB
Markdown
# 🚀 Быстрый старт: Привязка документов
|
||
|
||
## Эндпоинт
|
||
```
|
||
POST https://crm.clientright.ru/api/n8n/documents/attach
|
||
```
|
||
|
||
---
|
||
|
||
## 💡 Простейший пример (из n8n)
|
||
|
||
```json
|
||
[
|
||
{
|
||
"contact_id": "{{ $json.contact_id }}",
|
||
"project_id": "{{ $json.project_id }}",
|
||
"ticket_id": "{{ $json.ticket_id }}",
|
||
"filename": "{{ $json.filename }}",
|
||
"file_type": "{{ $json.file_type }}",
|
||
"file": "{{ $json.file }}"
|
||
}
|
||
]
|
||
```
|
||
|
||
**Важно:**
|
||
- ✅ Всегда передавать как **массив** `[...]`
|
||
- ✅ Поле `file` может быть без хоста (автоматически добавится `https://s3.twcstorage.ru`)
|
||
- ✅ Если `ticket_id` указан → документ привязывается к **заявке**
|
||
- ✅ Если `ticket_id` НЕ указан → документ привязывается к **проекту**
|
||
|
||
---
|
||
|
||
## 🧪 Тестирование
|
||
|
||
### Быстрый тест (в консоли сервера):
|
||
```bash
|
||
cd /var/www/fastuser/data/www/crm.clientright.ru/erv_platform
|
||
./TEST_REAL_DATA.sh
|
||
```
|
||
|
||
### Проверка логов:
|
||
```bash
|
||
# Backend логи
|
||
docker-compose logs -f backend | grep "Attaching document"
|
||
|
||
# CRM логи
|
||
tail -f /var/www/fastuser/data/www/crm.clientright.ru/logs/upload_documents.log
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ Ожидаемый ответ
|
||
|
||
```json
|
||
{
|
||
"success": true,
|
||
"total_processed": 1,
|
||
"successful": 1,
|
||
"failed": 0,
|
||
"results": [
|
||
{
|
||
"document_id": "15x396941",
|
||
"attached_to": "ticket",
|
||
"attached_to_id": "396936",
|
||
"file_name": "boarding_pass.pdf",
|
||
"file_type": "flight_delay_boarding_or_ticket",
|
||
"s3_bucket": "...",
|
||
"s3_key": "...",
|
||
"file_size": 85320
|
||
}
|
||
],
|
||
"errors": null
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 🔧 Интеграция в n8n
|
||
|
||
### HTTP Request Node:
|
||
|
||
**Method:** `POST`
|
||
**URL:** `https://crm.clientright.ru/api/n8n/documents/attach`
|
||
**Authentication:** None
|
||
**Body Content Type:** JSON
|
||
|
||
**Body:**
|
||
```json
|
||
{{ $json.documents }}
|
||
```
|
||
|
||
Где `$json.documents` - это массив документов из предыдущего node.
|
||
|
||
---
|
||
|
||
## 📊 Типы документов (file_type)
|
||
|
||
| Код | Описание |
|
||
|-----|----------|
|
||
| `flight_delay_boarding_or_ticket` | Посадочный талон / билет |
|
||
| `flight_delay_confirmation` | Подтверждение задержки |
|
||
| `flight_cancel_confirmation` | Подтверждение отмены рейса |
|
||
| `medical_receipt` | Медицинский чек |
|
||
| `medical_report` | Медицинское заключение |
|
||
| `luggage_delay_report` | Акт о задержке багажа |
|
||
| `passport_scan` | Скан паспорта |
|
||
| `policy_scan` | Скан полиса |
|
||
|
||
---
|
||
|
||
## 🎯 Готово!
|
||
|
||
Эндпоинт работает и готов к использованию! 🚀
|
||
|
||
Подробная документация: `DOCUMENT_ATTACH_API.md`
|
||
|
||
|