Corp/backend/docs/architecture/API_ANALYSIS.md
Игорь Надеин ee6e840252 Реорганизация документации и скриптов проекта
- Создана структура 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 приложения
- Вся документация организована в структурированные папки
2025-12-26 13:49:51 +03:00

9.1 KiB
Raw Blame History

Анализ использования 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

# Переместить из 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-маршруты