refactor(settings): move url routes from core.urls to own module urls_api.py

ref: #776 closes #777
This commit is contained in:
2025-05-29 10:48:07 +09:30
parent e04869cc65
commit 121a0c3f2c
2 changed files with 201 additions and 92 deletions

View File

@ -6,7 +6,6 @@ from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
from centurion_feature_flag.urls.routers import DefaultRouter
from api.viewsets import (
auth_token,
index as v2
)
@ -17,69 +16,18 @@ from centurion.viewsets.base import (
user as user_v2
)
from assistance.viewsets import (
knowledge_base_category as knowledge_base_category_v2,
knowledge_base_category_notes,
)
from core.viewsets import (
audit_history,
celery_log as celery_log_v2,
history as history_v2,
manufacturer as manufacturer_v2,
manufacturer_notes,
ticket,
ticket_category,
ticket_category_notes,
ticket_comment,
ticket_comment_category,
ticket_comment_category_notes,
)
from itam.viewsets import (
device_model as device_model_v2,
device_model_notes,
device_type as device_type_v2,
device_type_notes,
software_category as software_category_v2,
software_category_notes,
)
from itim.viewsets import (
cluster_type as cluster_type_v2,
cluster_type_notes,
port as port_v2,
port_notes,
)
from project_management.viewsets import (
project_state as project_state_v2,
project_state_notes,
project_type as project_type_v2,
project_type_notes,
)
from settings.viewsets import (
app_settings as app_settings_v2,
external_link as external_link_v2,
external_link_notes,
index as settings_index_v2,
user_settings as user_settings_v2
)
app_name = "API"
router = DefaultRouter(trailing_slash=False)
router.register('', v2.Index, basename='_api_v2_home')
history_type_names = ''
history_app_labels = ''
ticket_type_names = ''
ticket_comment_names = ''
# ticket_type_names = ''
# ticket_comment_names = ''
for model in apps.get_models():
@ -91,17 +39,13 @@ for model in apps.get_models():
history_app_labels += model._meta.app_label + '|'
history_app_labels = str(history_app_labels)[:-1]
history_type_names = str(history_type_names)[:-1]
if issubclass(model, ticket.TicketBase):
ticket_type_names += model._meta.sub_model_type + '|'
router = DefaultRouter(trailing_slash=False)
if issubclass(model, ticket_comment.TicketCommentBase):
ticket_comment_names += model._meta.sub_model_type + '|'
# pylint: disable=C0301:line-too-long
router.register('', v2.Index, basename='_api_v2_home')
router.register('base', base_index_v2.Index, basename='_api_v2_base_home')
@ -123,36 +67,6 @@ router.register(
)
router.register('settings', settings_index_v2.Index, basename='_api_v2_settings_home')
router.register('settings/app_settings', app_settings_v2.ViewSet, basename='_api_v2_app_settings')
router.register('settings/celery_log', celery_log_v2.ViewSet, basename='_api_v2_celery_log')
router.register('settings/cluster_type', cluster_type_v2.ViewSet, basename='_api_v2_cluster_type')
router.register('settings/cluster_type/(?P<model_id>[0-9]+)/notes', cluster_type_notes.ViewSet, basename='_api_v2_cluster_type_note')
router.register('settings/device_model', device_model_v2.ViewSet, basename='_api_v2_device_model')
router.register('settings/device_model/(?P<model_id>[0-9]+)/notes', device_model_notes.ViewSet, basename='_api_v2_device_model_note')
router.register('settings/device_type', device_type_v2.ViewSet, basename='_api_v2_device_type')
router.register('settings/device_type/(?P<model_id>[0-9]+)/notes', device_type_notes.ViewSet, basename='_api_v2_device_type_note')
router.register('settings/external_link', external_link_v2.ViewSet, basename='_api_v2_external_link')
router.register('settings/external_link/(?P<model_id>[0-9]+)/notes', external_link_notes.ViewSet, basename='_api_v2_external_link_note')
router.register('settings/knowledge_base_category', knowledge_base_category_v2.ViewSet, basename='_api_v2_knowledge_base_category')
router.register('settings/knowledge_base_category/(?P<model_id>[0-9]+)/notes', knowledge_base_category_notes.ViewSet, basename='_api_v2_knowledge_base_category_note')
router.register('settings/manufacturer', manufacturer_v2.ViewSet, basename='_api_v2_manufacturer')
router.register('settings/manufacturer/(?P<model_id>[0-9]+)/notes', manufacturer_notes.ViewSet, basename='_api_v2_manufacturer_note')
router.register('settings/port', port_v2.ViewSet, basename='_api_v2_port')
router.register('settings/port/(?P<model_id>[0-9]+)/notes', port_notes.ViewSet, basename='_api_v2_port_note')
router.register('settings/project_state', project_state_v2.ViewSet, basename='_api_v2_project_state')
router.register('settings/project_state/(?P<model_id>[0-9]+)/notes', project_state_notes.ViewSet, basename='_api_v2_project_state_note')
router.register('settings/project_type', project_type_v2.ViewSet, basename='_api_v2_project_type')
router.register('settings/project_type/(?P<model_id>[0-9]+)/notes', project_type_notes.ViewSet, basename='_api_v2_project_type_note')
router.register('settings/software_category', software_category_v2.ViewSet, basename='_api_v2_software_category')
router.register('settings/software_category/(?P<model_id>[0-9]+)/notes', software_category_notes.ViewSet, basename='_api_v2_software_category_note')
router.register('settings/ticket_category', ticket_category.ViewSet, basename='_api_v2_ticket_category')
router.register('settings/ticket_category/(?P<model_id>[0-9]+)/notes', ticket_category_notes.ViewSet, basename='_api_v2_ticket_category_note')
router.register('settings/ticket_comment_category', ticket_comment_category.ViewSet, basename='_api_v2_ticket_comment_category')
router.register('settings/ticket_comment_category/(?P<model_id>[0-9]+)/notes', ticket_comment_category_notes.ViewSet, basename='_api_v2_ticket_comment_category_note')
router.register('settings/user_settings', user_settings_v2.ViewSet, basename='_api_v2_user_settings')
router.register('settings/user_settings/(?P<model_id>[0-9]+)/token', auth_token.ViewSet, basename='_api_v2_user_settings_token')
urlpatterns = [
@ -174,5 +88,6 @@ urlpatterns += [
path(route = "itam/", view = include("itam.urls_api")),
path(route = "itim/", view = include("itim.urls_api")),
path(route = "project_management/", view = include("project_management.urls_api")),
path(route = "settings/", view = include("settings.urls_api")),
path(route = 'public/', view = include('api.urls_public')),
]

194
app/settings/urls_api.py Normal file
View File

@ -0,0 +1,194 @@
from assistance.viewsets import (
knowledge_base_category as knowledge_base_category_v2,
knowledge_base_category_notes,
)
from api.viewsets import (
auth_token,
)
from centurion_feature_flag.urls.routers import DefaultRouter
from core.viewsets import (
celery_log as celery_log_v2,
manufacturer as manufacturer_v2,
manufacturer_notes,
ticket_category,
ticket_category_notes,
ticket_comment_category,
ticket_comment_category_notes,
)
from itam.viewsets import (
device_model as device_model_v2,
device_model_notes,
device_type as device_type_v2,
device_type_notes,
software_category as software_category_v2,
software_category_notes,
)
from itim.viewsets import (
cluster_type as cluster_type_v2,
cluster_type_notes,
port as port_v2,
port_notes,
)
from project_management.viewsets import (
project_state as project_state_v2,
project_state_notes,
project_type as project_type_v2,
project_type_notes,
)
from settings.viewsets import (
app_settings as app_settings_v2,
external_link as external_link_v2,
external_link_notes,
index as settings_index_v2,
user_settings as user_settings_v2
)
# app_name = "settings"
router: DefaultRouter = DefaultRouter(trailing_slash=False)
router.register(
prefix = '', viewset = settings_index_v2.Index,
basename = '_api_v2_settings_home'
)
router.register(
prefix = 'app_settings', viewset = app_settings_v2.ViewSet,
basename = '_api_v2_app_settings'
)
router.register(
prefix = 'celery_log', viewset = celery_log_v2.ViewSet,
basename = '_api_v2_celery_log'
)
router.register(
prefix = 'cluster_type', viewset = cluster_type_v2.ViewSet,
basename = '_api_v2_cluster_type'
)
router.register(
prefix = 'cluster_type/(?P<model_id>[0-9]+)/notes',
viewset = cluster_type_notes.ViewSet,
basename = '_api_v2_cluster_type_note'
)
router.register(
prefix = 'device_model', viewset = device_model_v2.ViewSet,
basename = '_api_v2_device_model'
)
router.register(
prefix = 'device_model/(?P<model_id>[0-9]+)/notes',
viewset = device_model_notes.ViewSet,
basename = '_api_v2_device_model_note'
)
router.register(
prefix = 'device_type', viewset = device_type_v2.ViewSet,
basename = '_api_v2_device_type'
)
router.register(
prefix = 'device_type/(?P<model_id>[0-9]+)/notes',
viewset = device_type_notes.ViewSet,
basename = '_api_v2_device_type_note'
)
router.register(
prefix = 'external_link', viewset = external_link_v2.ViewSet,
basename = '_api_v2_external_link'
)
router.register(
prefix = 'external_link/(?P<model_id>[0-9]+)/notes',
viewset = external_link_notes.ViewSet,
basename = '_api_v2_external_link_note'
)
router.register(
prefix = 'knowledge_base_category',
viewset = knowledge_base_category_v2.ViewSet,
basename = '_api_v2_knowledge_base_category'
)
router.register(
prefix = 'knowledge_base_category/(?P<model_id>[0-9]+)/notes',
viewset = knowledge_base_category_notes.ViewSet,
basename = '_api_v2_knowledge_base_category_note'
)
router.register(
prefix = 'manufacturer', viewset = manufacturer_v2.ViewSet,
basename = '_api_v2_manufacturer'
)
router.register(
prefix = 'manufacturer/(?P<model_id>[0-9]+)/notes',
viewset = manufacturer_notes.ViewSet,
basename = '_api_v2_manufacturer_note'
)
router.register(
prefix = 'port', viewset = port_v2.ViewSet,
basename = '_api_v2_port'
)
router.register(
prefix = 'port/(?P<model_id>[0-9]+)/notes', viewset = port_notes.ViewSet,
basename = '_api_v2_port_note'
)
router.register(
prefix = 'project_state',
viewset = project_state_v2.ViewSet,
basename = '_api_v2_project_state'
)
router.register(
prefix = 'project_state/(?P<model_id>[0-9]+)/notes',
viewset = project_state_notes.ViewSet,
basename = '_api_v2_project_state_note'
)
router.register(
prefix = 'project_type', viewset = project_type_v2.ViewSet,
basename = '_api_v2_project_type'
)
router.register(
prefix = 'project_type/(?P<model_id>[0-9]+)/notes',
viewset = project_type_notes.ViewSet,
basename = '_api_v2_project_type_note'
)
router.register(
prefix = 'software_category', viewset = software_category_v2.ViewSet,
basename = '_api_v2_software_category'
)
router.register(
prefix = 'software_category/(?P<model_id>[0-9]+)/notes',
viewset = software_category_notes.ViewSet,
basename = '_api_v2_software_category_note'
)
router.register(
prefix = 'ticket_category',
viewset = ticket_category.ViewSet, basename = '_api_v2_ticket_category'
)
router.register(
prefix = 'ticket_category/(?P<model_id>[0-9]+)/notes',
viewset = ticket_category_notes.ViewSet,
basename = '_api_v2_ticket_category_note'
)
router.register(
prefix = 'ticket_comment_category',
viewset = ticket_comment_category.ViewSet,
basename = '_api_v2_ticket_comment_category'
)
router.register(
prefix = 'ticket_comment_category/(?P<model_id>[0-9]+)/notes',
viewset = ticket_comment_category_notes.ViewSet,
basename = '_api_v2_ticket_comment_category_note'
)
router.register(
prefix = 'user_settings', viewset = user_settings_v2.ViewSet,
basename = '_api_v2_user_settings'
)
router.register(
prefix = 'user_(?P<model_id>[0-9]+)/token', viewset = auth_token.ViewSet,
basename = '_api_v2_user_settings_token'
)
urlpatterns = router.urls