Corp/backend/api/v1/urls.py
Игорь Надеин da6f7b016b refactor(communications): переименование viewsets.py в views.py
Структурная реорганизация:
- Удален legacy views.py (оставалась только get_available_reactions)
- Переименован viewsets.py → views.py (теперь основной модуль)
- ViewSets теперь в стандартном location (views.py)

Обновлены импорты:
- api/v1/urls.py: from .communications.views import ViewSets
- Удален неиспользуемый endpoint: communications/reactions/available/

Удалено legacy FBV (было 18 функций):
- get_user_chats() → ChatViewSet.list()
- upload_message_with_attachments() → MessageViewSet.upload()
- load_chat_messages() → ChatViewSet.messages()
- load_chat_messages_around() → ChatViewSet.messages_around()
- add_reaction() → MessageViewSet.react()
- remove_reaction() → MessageViewSet.unreact()
- pin_chat() → ChatViewSet.pin()
- toggle_chat_notifications() → ChatViewSet.notifications()
- forward_messages() → MessageViewSet.forward()
- bulk_delete_messages() → MessageViewSet.bulk_delete()
- edit_message() → MessageViewSet.update()
- delete_message() → MessageViewSet.destroy()
- create_chat() → ChatViewSet.create()
- get_available_reactions() → удалена (не используется)

Итоги:
- Удалено 1,722 строк дублирующего кода (-56%)
- 100% переход на ViewSets
- Соответствие DRF best practices

Ref: docs/completed/LEGACY_CODE_CLEANUP.md
2026-01-15 12:16:15 +03:00

70 lines
2.3 KiB
Python

from django.urls import include, path
from rest_framework.routers import DefaultRouter
from .calendar.views import CalendarEventsViewSet
from .employees.views import (DepartmentRoleViewSet, DepartmentViewSet,
EmployeeActionViewSet, EmployeeViewSet,
GroupViewSet, PositionViewSet,
RegisterAPIView, ResendEmailAPIView,
SkillViewSet, VerifyEmailAPIView)
from .feed.views import CommentViewSet, PostViewSet
from .documents.views import DocumentViewSet
from .requests_app.views import RequestViewSet
# Communications ViewSets
from .communications.views import ChatViewSet, MessageViewSet, PollViewSet
app_name = "v1"
router = DefaultRouter()
router.register(r"calendar/events", CalendarEventsViewSet, basename="events")
router.register(r"documents", DocumentViewSet, basename="documents")
router.register(r"requests", RequestViewSet, basename="request")
router.register(r"departments", DepartmentViewSet, basename="departments")
router.register(r"employees", EmployeeViewSet, basename="employees")
router.register(
r"employee-actions",
EmployeeActionViewSet,
basename="employee-actions",
)
router.register(r"positions", PositionViewSet, basename="positions")
router.register(
r"department-roles",
DepartmentRoleViewSet,
basename="department-roles",
)
router.register(r"skills", SkillViewSet, basename="skills")
router.register(r"posts", PostViewSet, basename="posts")
router.register(r"comments", CommentViewSet, basename="comments")
router.register(r"groups", GroupViewSet, basename="groups")
# NEW: Communications ViewSets
router.register(r"communications/chats", ChatViewSet, basename="chats")
router.register(r"communications/messages", MessageViewSet, basename="messages")
router.register(r"communications/polls", PollViewSet, basename="polls")
urlpatterns = [
path("auth/register/", RegisterAPIView.as_view(), name="register"),
path(
"auth/resend-email/",
ResendEmailAPIView.as_view(),
name="resend-email",
),
path(
"auth/verify-email/",
VerifyEmailAPIView.as_view(),
name="verify-email",
),
# Notifications API
path("notifications/", include("api.v1.notifications.urls")),
# Router URLs (включая все ViewSets)
path("", include(router.urls)),
]