# Анализ использования 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//update/` | Мертвый груз | | `set_chat_notifications()` | `/api/chat//notifications/` | Мертвый груз | | `block_announcement()` | `/api/announcement//block/` | Мертвый груз | | `unblock_announcement()` | `/api/announcement//unblock/` | Мертвый груз | | `edit_message()` | `/api/message//edit/` | Мертвый груз | | `delete_message()` | `/api/message//delete/` | Мертвый груз | | `pin_message()` | `/api/message//pin/` | Мертвый груз | | `upload_attachment()` | `/api/attachment/upload/` | Мертвый груз | | `forward_message()` | `/api/message//forward/` | Мертвый груз | | `reply_to_message()` | `/api/message//reply/` | Мертвый груз | | `add_member()` | `/api/chat//member/add/` | Мертвый груз | | `remove_member()` | `/api/chat//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//messages/` | #### ✅ ПОДКЛЮЧЕНО В URLS (3 функции для реакций) | Функция | URL | Примечание | |---------|-----|------------| | `add_reaction()` | `/communications/api/message//react/` | Подключено, но не используется в JS | | `remove_reaction()` | `/communications/api/message//unreact/` | Подключено, но не используется в JS | | `get_message_reactions()` | `/communications/api/message//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-маршруты