feat(core): Filter ticket_comment_model routes to those defined in Meta.sub_model_type

ref: #732 #726
This commit is contained in:
2025-04-26 06:56:31 +09:30
parent dcd60a5152
commit a923a21660

View File

@ -139,6 +139,7 @@ router.register('', v2.Index, basename='_api_v2_home')
entity_type_names = ''
ticket_type_names = ''
ticket_comment_names = ''
for model in apps.get_models():
@ -202,10 +203,24 @@ ticket_type_names = str(ticket_type_names)[:-1]
router.register(f'core/ticket/(?P<ticket_model>[{ticket_type_names}]+)', ticket.ViewSet, feature_flag = '2025-00002', basename='_api_v2_ticket_sub')
router.register('core/ticket', ticket.NoDocsViewSet, basename='_api_v2_ticket')
router.register('core/ticket/(?P<ticket_id>[0-9]+)/comment', ticket_comment.NoDocsViewSet, basename='_api_v2_ticket_comment_base')
router.register('core/ticket/(?P<ticket_id>[0-9]+)/comment/(?P<parent_id>[0-9]+)/threads', ticket_comment.ViewSet, basename='_api_v2_ticket_comment_base_thread')
router.register('core/ticket/(?P<ticket_id>[0-9]+)/comments', ticket_comment_depreciated.ViewSet, basename='_api_v2_ticket_comment')
router.register('core/ticket/(?P<ticket_id>[0-9]+)/comments/(?P<parent_id>[0-9]+)/threads', ticket_comment_depreciated.ViewSet, basename='_api_v2_ticket_comment_threads')
router.register('core/ticket/(?P<ticket_id>[0-9]+)/linked_item', ticket_linked_item.ViewSet, basename='_api_v2_ticket_linked_item')
router.register('core/ticket/(?P<ticket_id>[0-9]+)/related_ticket', related_ticket.ViewSet, basename='_api_v2_ticket_related')
ticket_comment_names = str(ticket_comment_names)[:-1]
router.register(f'core/ticket/(?P<ticket_id>[0-9]+)/(?P<ticket_comment_model>[{ticket_comment_names}]+)', ticket_comment.ViewSet, basename='_api_v2_ticket_comment_base_sub')
router.register(f'core/ticket/(?P<ticket_id>[0-9]+)/(?P<ticket_comment_model>[{ticket_comment_names}]+)/(?P<parent_id>[0-9]+)/threads', ticket_comment.ViewSet, basename='_api_v2_ticket_comment_base_sub_thread')
router.register('core/(?P<item_class>[a-z_]+)/(?P<item_id>[0-9]+)/item_ticket', ticket_linked_item.ViewSet, basename='_api_v2_item_tickets')