- Создана структура docs/ с категориями: completed, guides, architecture, diagnostic, in-progress, reports - Перемещено 47+ MD файлов из корня проекта в docs/ - Удалено 6 устаревших/дублирующихся файлов - Создана структура backend/scripts/ для тестов и утилит - Перемещено 35 Python скриптов в backend/scripts/ - Создана структура backend/docs/ для технической документации - Перемещено 12 MD файлов backend в backend/docs/ - Перемещены LDAP тестовые данные в backend/tests/fixtures/ - Добавлены README файлы для навигации - Добавлены правила в .github/copilot-instructions.md для размещения документации Результат: - Корень проекта: только README.md - Корень backend/: только manage.py и Django приложения - Вся документация организована в структурированные папки
9.1 KiB
9.1 KiB
Анализ использования 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: Удаление устаревшего файла
После переноса всех функций:
- Удалить
communications/api_views.py(719 строк мертвого кода) - Обновить импорты в
communications/urls.py - Объединить все маршруты под
/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
# Переместить из communications/api_views.py в api/v1/communications/views.py
# Обновить static/js/chat-list-enhanced.js:154
Шаг 2: Принять решение по остальным функциям
- Перенести create_chat, update_chat и т.д.
- Или удалить, если не планируется использование
Шаг 3: Очистить маршруты
# communications/urls.py - оставить только UI views
# api/v1/urls.py - все API маршруты
Шаг 4: Удалить мертвый код
rm backend/communications/api_views.py
Заключение
Критическая находка: 93% кода в communications/api_views.py не используется!
Текущая архитектура API:
- ❌ Смешанная: часть в
communications/, часть вapi/v1/ - ❌ Много мертвого кода
- ✅ Реакции уже в правильном месте
Целевая архитектура:
- ✅ Весь API в
api/v1/communications/ - ✅ Чистый код без мертвых функций
- ✅ Единообразные URL-маршруты