From 0e3ede5a1ac68633b84240627c1da889d36ac2fe Mon Sep 17 00:00:00 2001
From: jo <ljonas@riseup.net>
Date: Tue, 19 Jul 2022 18:38:17 +0200
Subject: [PATCH] chore(api): route using urls

Allow to register function views in the same app instead of globaly.
---
 api/libretime_api/core/router.py     |  2 ++
 api/libretime_api/history/router.py  |  2 ++
 api/libretime_api/podcasts/router.py |  2 ++
 api/libretime_api/schedule/router.py |  2 ++
 api/libretime_api/storage/router.py  |  2 ++
 api/libretime_api/urls.py            | 26 ++++++++++++--------------
 6 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/api/libretime_api/core/router.py b/api/libretime_api/core/router.py
index 246ca496e..dcbf5563d 100644
--- a/api/libretime_api/core/router.py
+++ b/api/libretime_api/core/router.py
@@ -20,3 +20,5 @@ router.register("users", UserViewSet)
 router.register("user-tokens", UserTokenViewSet)
 router.register("celery-tasks", CeleryTaskViewSet)
 router.register("third-party-track-references", ThirdPartyTrackReferenceViewSet)
+
+urls = router.urls
diff --git a/api/libretime_api/history/router.py b/api/libretime_api/history/router.py
index 23b2d45f8..b9443db6e 100644
--- a/api/libretime_api/history/router.py
+++ b/api/libretime_api/history/router.py
@@ -20,3 +20,5 @@ router.register("playout-history-metadata", PlayoutHistoryMetadataViewSet)
 router.register("playout-history-templates", PlayoutHistoryTemplateViewSet)
 router.register("playout-history-template-fields", PlayoutHistoryTemplateFieldViewSet)
 router.register("timestamps", TimestampViewSet)
+
+urls = router.urls
diff --git a/api/libretime_api/podcasts/router.py b/api/libretime_api/podcasts/router.py
index 60f0b372b..1b4e26699 100644
--- a/api/libretime_api/podcasts/router.py
+++ b/api/libretime_api/podcasts/router.py
@@ -12,3 +12,5 @@ router.register("podcast-episodes", PodcastEpisodeViewSet)
 router.register("podcasts", PodcastViewSet)
 router.register("station-podcasts", StationPodcastViewSet)
 router.register("imported-podcasts", ImportedPodcastViewSet)
+
+urls = router.urls
diff --git a/api/libretime_api/schedule/router.py b/api/libretime_api/schedule/router.py
index af4e96f7f..e16038c05 100644
--- a/api/libretime_api/schedule/router.py
+++ b/api/libretime_api/schedule/router.py
@@ -30,3 +30,5 @@ router.register("smart-block-criteria", SmartBlockCriteriaViewSet)
 router.register("smart-blocks", SmartBlockViewSet)
 router.register("webstream-metadata", WebstreamMetadataViewSet)
 router.register("webstreams", WebstreamViewSet)
+
+urls = router.urls
diff --git a/api/libretime_api/storage/router.py b/api/libretime_api/storage/router.py
index 6ec5b2cbe..8e51ff355 100644
--- a/api/libretime_api/storage/router.py
+++ b/api/libretime_api/storage/router.py
@@ -5,3 +5,5 @@ from .views import FileViewSet, LibraryViewSet
 router = routers.DefaultRouter()
 router.register("files", FileViewSet)
 router.register("libraries", LibraryViewSet)
+
+urls = router.urls
diff --git a/api/libretime_api/urls.py b/api/libretime_api/urls.py
index 4a20064d7..8a21395af 100644
--- a/api/libretime_api/urls.py
+++ b/api/libretime_api/urls.py
@@ -6,26 +6,24 @@ https://docs.djangoproject.com/en/3.2/topics/http/urls/
 """
 from django.urls import include, path
 from drf_spectacular.views import SpectacularAPIView, SpectacularSwaggerView
-from rest_framework import routers
 
-from .core.router import router as core_router
+from .core.router import urls as core_urls
 from .core.views import version
-from .history.router import router as history_router
-from .podcasts.router import router as podcasts_router
-from .schedule.router import router as schedule_router
-from .storage.router import router as storage_router
+from .history.router import urls as history_urls
+from .podcasts.router import urls as podcasts_urls
+from .schedule.router import urls as schedule_urls
+from .storage.router import urls as storage_urls
 
-router = routers.DefaultRouter()
-
-router.registry.extend(core_router.registry)
-router.registry.extend(history_router.registry)
-router.registry.extend(podcasts_router.registry)
-router.registry.extend(schedule_router.registry)
-router.registry.extend(storage_router.registry)
+api_urls = []
+api_urls += core_urls
+api_urls += history_urls
+api_urls += podcasts_urls
+api_urls += schedule_urls
+api_urls += storage_urls
 
 
 urlpatterns = [
-    path("api/v2/", include(router.urls)),
+    path("api/v2/", include(api_urls)),
     path("api/v2/version/", version),
     path(
         "api/v2/schema/",