Corp/backend/API_ANALYSIS.md

200 lines
9.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Анализ использования API функций
## Дата анализа: 30 ноября 2025 г.
## 1. Файл: `communications/api_views.py` (719 строк)
### Функции и их статус использования:
#### ✅ ИСПОЛЬЗУЕТСЯ (1 функция)
| Функция | Используется в | Примечание |
|---------|----------------|------------|
| `pin_chat()` | `static/js/chat-list-enhanced.js:154` | `/communications/api/chat/${chatId}/pin/` |
#### ❌ НЕ ИСПОЛЬЗУЕТСЯ (13 функций)
| Функция | URL маршрут | Статус |
|---------|-------------|---------|
| `create_chat()` | `/api/chat/create/` | Мертвый груз |
| `update_chat()` | `/api/chat/<id>/update/` | Мертвый груз |
| `set_chat_notifications()` | `/api/chat/<id>/notifications/` | Мертвый груз |
| `block_announcement()` | `/api/announcement/<id>/block/` | Мертвый груз |
| `unblock_announcement()` | `/api/announcement/<id>/unblock/` | Мертвый груз |
| `edit_message()` | `/api/message/<id>/edit/` | Мертвый груз |
| `delete_message()` | `/api/message/<id>/delete/` | Мертвый груз |
| `pin_message()` | `/api/message/<id>/pin/` | Мертвый груз |
| `upload_attachment()` | `/api/attachment/upload/` | Мертвый груз |
| `forward_message()` | `/api/message/<id>/forward/` | Мертвый груз |
| `reply_to_message()` | `/api/message/<id>/reply/` | Мертвый груз |
| `add_member()` | `/api/chat/<id>/member/add/` | Мертвый груз |
| `remove_member()` | `/api/chat/<id>/member/remove/` | Мертвый груз |
**Итого: 13 из 14 функций (93%) не используются!**
---
## 2. Файл: `api/v1/communications/views.py` (409 строк)
### Функции и их статус использования:
#### ✅ АКТИВНО ИСПОЛЬЗУЕТСЯ (2 функции)
| Функция | Используется в | URL |
|---------|----------------|-----|
| `upload_message_with_attachments()` | `static/js/components/chatComposer.js:19` | `/api/v1/communications/upload-message/` |
| `load_chat_messages()` | `api/v1/urls.py:66` | `/api/v1/communications/chats/<pk>/messages/` |
#### ✅ ПОДКЛЮЧЕНО В URLS (3 функции для реакций)
| Функция | URL | Примечание |
|---------|-----|------------|
| `add_reaction()` | `/communications/api/message/<id>/react/` | Подключено, но не используется в JS |
| `remove_reaction()` | `/communications/api/message/<id>/unreact/` | Подключено, но не используется в JS |
| `get_message_reactions()` | `/communications/api/message/<id>/reactions/` | Подключено, но не используется в JS |
#### ℹ️ ВСПОМОГАТЕЛЬНАЯ
| Функция | Назначение |
|---------|-----------|
| `get_reactions_summary()` | Вспомогательная функция для add_reaction/remove_reaction |
**Итого: 2 функции активно используются, 3 готовы к использованию (реакции)**
---
## 3. Сводная таблица по категориям
### Управление чатами
| Функция | Расположение | Статус |
|---------|--------------|--------|
| create_chat | api_views.py | ❌ Мертвый груз |
| update_chat | api_views.py | ❌ Мертвый груз |
| pin_chat | api_views.py | ✅ Используется |
| set_chat_notifications | api_views.py | ❌ Мертвый груз |
| block_announcement | api_views.py | ❌ Мертвый груз |
| unblock_announcement | api_views.py | ❌ Мертвый груз |
### Управление сообщениями
| Функция | Расположение | Статус |
|---------|--------------|--------|
| upload_message_with_attachments | v1/views.py | ✅ Активно используется |
| load_chat_messages | v1/views.py | ✅ Активно используется |
| edit_message | api_views.py | ❌ Мертвый груз |
| delete_message | api_views.py | ❌ Мертвый груз |
| pin_message | api_views.py | ❌ Мертвый груз |
| upload_attachment | api_views.py | ❌ Мертвый груз |
### Реакции
| Функция | Расположение | Статус |
|---------|--------------|--------|
| add_reaction | v1/views.py | 🟡 Готово, но не используется |
| remove_reaction | v1/views.py | 🟡 Готово, но не используется |
| get_message_reactions | v1/views.py | 🟡 Готово, но не используется |
| get_reactions_summary | v1/views.py | 🟡 Вспомогательная |
### Пересылка и ответы
| Функция | Расположение | Статус |
|---------|--------------|--------|
| forward_message | api_views.py | ❌ Мертвый груз |
| reply_to_message | api_views.py | ❌ Мертвый груз |
### Управление участниками
| Функция | Расположение | Статус |
|---------|--------------|--------|
| add_member | api_views.py | ❌ Мертвый груз |
| remove_member | api_views.py | ❌ Мертвый груз |
---
## 4. Рекомендации по рефакторингу
### Фаза 1: Перенос активно используемых функций ✅
**Статус:** Частично выполнено
- ✅ Реакции перенесены в `api/v1/communications/views.py`
- ✅ Загрузка сообщений уже в правильном месте
### Фаза 2: Перенос единственной используемой функции из api_views.py
**Действие:** Перенести `pin_chat()` в `api/v1/communications/views.py`
**Обновить:** `static/js/chat-list-enhanced.js:154`
### Фаза 3: Принять решение по неиспользуемым функциям
#### Вариант А: Полный перенос (рекомендуется)
Перенести ВСЕ 13 неиспользуемых функций в `api/v1/communications/views.py`:
- Логика в одном месте
- Готовность к будущему использованию
- Правильная архитектура
#### Вариант Б: Удаление
Удалить неиспользуемые функции:
- Меньше кода для поддержки
- Можно воссоздать при необходимости
- Риск потери функциональности
#### Вариант В: Оставить как есть
- ❌ Не рекомендуется
- Нарушает архитектуру
- Путаница в будущем
### Фаза 4: Удаление устаревшего файла
После переноса всех функций:
1. Удалить `communications/api_views.py` (719 строк мертвого кода)
2. Обновить импорты в `communications/urls.py`
3. Объединить все маршруты под `/api/v1/communications/`
---
## 5. Итоговая статистика
### communications/api_views.py
- **Всего функций:** 14
- **Используется:** 1 (7%)
- **Не используется:** 13 (93%)
- **Размер файла:** 719 строк
- **Рекомендация:** Перенести полезное, удалить файл
### api/v1/communications/views.py
- **Всего функций:** 6
- **Активно используется:** 2 (33%)
- **Готово к использованию:** 3 (50%)
- **Вспомогательные:** 1 (17%)
- **Размер файла:** 409 строк
- **Рекомендация:** Расширить функциональность
---
## 6. План действий
### Шаг 1: Перенести pin_chat
```python
# Переместить из communications/api_views.py в api/v1/communications/views.py
# Обновить static/js/chat-list-enhanced.js:154
```
### Шаг 2: Принять решение по остальным функциям
- [ ] Перенести create_chat, update_chat и т.д.
- [ ] Или удалить, если не планируется использование
### Шаг 3: Очистить маршруты
```python
# communications/urls.py - оставить только UI views
# api/v1/urls.py - все API маршруты
```
### Шаг 4: Удалить мертвый код
```bash
rm backend/communications/api_views.py
```
---
## Заключение
**Критическая находка:** 93% кода в `communications/api_views.py` не используется!
**Текущая архитектура API:**
- ❌ Смешанная: часть в `communications/`, часть в `api/v1/`
- ❌ Много мертвого кода
- ✅ Реакции уже в правильном месте
**Целевая архитектура:**
- ✅ Весь API в `api/v1/communications/`
- ✅ Чистый код без мертвых функций
- ✅ Единообразные URL-маршруты