Files
centurion_erp/app/core/urls_api.py
2025-07-04 08:40:25 +09:30

103 lines
2.9 KiB
Python

from django.apps import apps
from centurion_feature_flag.urls.routers import DefaultRouter
from core.viewsets import (
audit_history,
ticket,
ticket_comment,
ticket_comment_depreciated,
ticket_linked_item,
related_ticket,
)
ticket_type_names = ''
ticket_comment_names = ''
for model in apps.get_models():
if issubclass(model, ticket.TicketBase):
ticket_type_names += model._meta.sub_model_type + '|'
if issubclass(model, ticket_comment.TicketCommentBase):
ticket_comment_names += model._meta.sub_model_type + '|'
ticket_comment_names = str(ticket_comment_names)[:-1]
ticket_type_names = str(ticket_type_names)[:-1]
# app_name = "core"
router: DefaultRouter = DefaultRouter(trailing_slash=False)
router.register(
'history', audit_history.NoDocsViewSet,
basename = '_api_centurionaudit'
)
router.register(
prefix=f'ticket/(?P<ticket_model>[{ticket_type_names}]+)', viewset = ticket.ViewSet,
feature_flag = '2025-00006', basename = '_api_v2_ticket_sub'
)
router.register(
prefix = 'ticket', viewset = ticket.NoDocsViewSet,
basename = '_api_v2_ticket'
)
router.register(
prefix = 'ticket/(?P<ticket_id>[0-9]+)/comment', viewset = ticket_comment.NoDocsViewSet,
feature_flag = '2025-00006', basename = '_api_v2_ticket_comment_base'
)
router.register(
prefix = 'ticket/(?P<ticket_id>[0-9]+)/comment/(?P<parent_id>[0-9]+)/threads',
viewset = ticket_comment.ViewSet,
feature_flag = '2025-00006', basename = '_api_v2_ticket_comment_base_thread'
)
router.register(
prefix = 'ticket/(?P<ticket_id>[0-9]+)/comments', viewset = ticket_comment_depreciated.ViewSet,
basename = '_api_v2_ticket_comment'
)
router.register(
prefix = 'ticket/(?P<ticket_id>[0-9]+)/comments/(?P<parent_id>[0-9]+)/threads',
viewset = ticket_comment_depreciated.ViewSet,
basename = '_api_v2_ticket_comment_threads'
)
router.register(
prefix = 'ticket/(?P<ticket_id>[0-9]+)/linked_item', viewset = ticket_linked_item.ViewSet,
basename = '_api_v2_ticket_linked_item'
)
router.register(
prefix = 'ticket/(?P<ticket_id>[0-9]+)/related_ticket', viewset = related_ticket.ViewSet,
basename = '_api_v2_ticket_related'
)
router.register(
prefix=f'ticket/(?P<ticket_id>[0-9]+)/(?P<ticket_comment_model>[{ticket_comment_names}]+)',
viewset = ticket_comment.ViewSet,
feature_flag = '2025-00006', basename = '_api_v2_ticket_comment_base_sub'
)
router.register(
prefix=f'ticket/(?P<ticket_id>[0-9]+)/(?P<ticket_comment_model>[{ticket_comment_names} \
]+)/(?P<parent_id>[0-9]+)/threads',
viewset = ticket_comment.ViewSet,
feature_flag = '2025-00006', basename = '_api_v2_ticket_comment_base_sub_thread'
)
router.register(
prefix = '(?P<item_class>[a-z_]+)/(?P<item_id>[0-9]+)/item_ticket',
viewset = ticket_linked_item.ViewSet,
basename = '_api_v2_item_tickets'
)
urlpatterns = router.urls