feat: Добавлен эндпоинт для привязки документов к проекту/заявке
Изменения: ✅ Новый endpoint: POST /api/n8n/documents/attach ✅ Поддерживает привязку к Project или HelpDesk ✅ Логика: если указан ticket_id → HelpDesk, иначе → Project ✅ Полное логирование всех операций ✅ Интеграция с upload_documents_to_crm.php Входные данные: - contact_id (обязательно) - project_id (обязательно) - file_url (обязательно) - file_name (обязательно) - ticket_id (опционально, для привязки к заявке) - file_type (опционально, описание документа) Готово к интеграции в n8n workflow!
This commit is contained in:
129
TEST_ATTACH_DOCUMENT.md
Normal file
129
TEST_ATTACH_DOCUMENT.md
Normal file
@@ -0,0 +1,129 @@
|
||||
# 📎 Тестирование привязки документов к проекту/заявке
|
||||
|
||||
## Эндпоинт
|
||||
```
|
||||
POST https://crm.clientright.ru/api/n8n/documents/attach
|
||||
```
|
||||
|
||||
## 📋 Входные данные
|
||||
|
||||
### Обязательные поля:
|
||||
- `contact_id` - ID контакта
|
||||
- `project_id` - ID проекта
|
||||
- `file_url` - URL файла в S3
|
||||
- `file_name` - Имя файла
|
||||
|
||||
### Опциональные поля:
|
||||
- `ticket_id` - ID заявки (если указан → привязываем к заявке)
|
||||
- `file_type` - Описание документа (например: "flight_delay_boarding_or_ticket")
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Тест 1: Привязка к проекту
|
||||
|
||||
```bash
|
||||
curl -X POST "https://crm.clientright.ru/api/n8n/documents/attach" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"contact_id": "320096",
|
||||
"project_id": "396874",
|
||||
"file_url": "https://s3.twcstorage.ru/f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c/clientright/test/test_document.pdf",
|
||||
"file_name": "boarding_pass.pdf",
|
||||
"file_type": "flight_delay_boarding_or_ticket"
|
||||
}'
|
||||
```
|
||||
|
||||
**Ожидаемый результат:**
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"result": {
|
||||
"document_id": "15x396940",
|
||||
"document_numeric_id": "396940",
|
||||
"attached_to": "project",
|
||||
"attached_to_id": "396874",
|
||||
"file_name": "boarding_pass.pdf",
|
||||
"file_type": "flight_delay_boarding_or_ticket",
|
||||
"s3_bucket": "f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c",
|
||||
"s3_key": "clientright/test/test_document.pdf",
|
||||
"file_size": 12345,
|
||||
"message": "Документ создан с правильными S3 метаданными и привязан к проекту"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Тест 2: Привязка к заявке (HelpDesk)
|
||||
|
||||
```bash
|
||||
curl -X POST "https://crm.clientright.ru/api/n8n/documents/attach" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"contact_id": "320096",
|
||||
"project_id": "396874",
|
||||
"ticket_id": "396935",
|
||||
"file_url": "https://s3.twcstorage.ru/f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c/clientright/test/test_document.pdf",
|
||||
"file_name": "flight_delay_confirmation.pdf",
|
||||
"file_type": "flight_delay_confirmation"
|
||||
}'
|
||||
```
|
||||
|
||||
**Ожидаемый результат:**
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"result": {
|
||||
"document_id": "15x396941",
|
||||
"document_numeric_id": "396941",
|
||||
"attached_to": "ticket",
|
||||
"attached_to_id": "396935",
|
||||
"file_name": "flight_delay_confirmation.pdf",
|
||||
"file_type": "flight_delay_confirmation",
|
||||
"s3_bucket": "f9825c87-4e3558f6-f9b6-405c-ad3d-d1535c49b61c",
|
||||
"s3_key": "clientright/test/test_document.pdf",
|
||||
"file_size": 12345,
|
||||
"message": "Документ создан с правильными S3 метаданными и привязан к проекту"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📊 Логика работы
|
||||
|
||||
1. **Если `ticket_id` НЕ указан:**
|
||||
- Документ создается в vTiger CRM (модуль Documents)
|
||||
- Привязывается к **Project** (проекту)
|
||||
- `attached_to = "project"`
|
||||
|
||||
2. **Если `ticket_id` указан:**
|
||||
- Документ создается в vTiger CRM (модуль Documents)
|
||||
- Привязывается к **HelpDesk** (заявке)
|
||||
- `attached_to = "ticket"`
|
||||
|
||||
3. **S3 метаданные:**
|
||||
- Автоматически обновляются в базе vTiger
|
||||
- `filelocationtype = 'E'` (External URL)
|
||||
- Сохраняются `s3_bucket`, `s3_key`, `file_size`
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Где смотреть логи
|
||||
|
||||
### Backend логи:
|
||||
```bash
|
||||
docker-compose logs -f backend | grep "Attaching document"
|
||||
```
|
||||
|
||||
### CRM логи:
|
||||
```bash
|
||||
tail -f /var/www/fastuser/data/www/crm.clientright.ru/logs/upload_documents.log
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ✅ Готово!
|
||||
|
||||
Эндпоинт готов к интеграции в n8n workflow!
|
||||
|
||||
Reference in New Issue
Block a user