103 lines
2.9 KiB
Python
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
|