200 lines
9.1 KiB
Markdown
200 lines
9.1 KiB
Markdown
# Анализ использования 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-маршруты
|