mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 08:31:08 -05:00
Refactor code structure and remove redundant changes
This commit is contained in:
@@ -5,19 +5,8 @@ This module provides unified API routing following RESTful conventions
|
||||
and DRF Router patterns for automatic URL generation.
|
||||
"""
|
||||
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from drf_spectacular.views import (
|
||||
SpectacularAPIView,
|
||||
SpectacularSwaggerView,
|
||||
SpectacularRedocView,
|
||||
)
|
||||
|
||||
from .viewsets import (
|
||||
ParkViewSet,
|
||||
RideViewSet,
|
||||
ParkReadOnlyViewSet,
|
||||
RideReadOnlyViewSet,
|
||||
from .viewsets_rankings import RideRankingViewSet, TriggerRankingCalculationView
|
||||
from .views import (
|
||||
LoginAPIView,
|
||||
SignupAPIView,
|
||||
LogoutAPIView,
|
||||
@@ -29,62 +18,21 @@ from .viewsets import (
|
||||
HealthCheckAPIView,
|
||||
PerformanceMetricsAPIView,
|
||||
SimpleHealthAPIView,
|
||||
# History viewsets
|
||||
ParkHistoryViewSet,
|
||||
RideHistoryViewSet,
|
||||
UnifiedHistoryViewSet,
|
||||
# New comprehensive viewsets
|
||||
ParkAreaViewSet,
|
||||
ParkLocationViewSet,
|
||||
CompanyViewSet,
|
||||
RideModelViewSet,
|
||||
RollerCoasterStatsViewSet,
|
||||
RideLocationViewSet,
|
||||
RideReviewViewSet,
|
||||
UserProfileViewSet,
|
||||
TopListViewSet,
|
||||
TopListItemViewSet,
|
||||
# Trending system views
|
||||
TrendingAPIView,
|
||||
NewContentAPIView,
|
||||
)
|
||||
|
||||
# Import ranking viewsets
|
||||
from .viewsets_rankings import RideRankingViewSet, TriggerRankingCalculationView
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from drf_spectacular.views import (
|
||||
SpectacularAPIView,
|
||||
SpectacularSwaggerView,
|
||||
SpectacularRedocView,
|
||||
)
|
||||
|
||||
# Create the main API router
|
||||
router = DefaultRouter()
|
||||
|
||||
# Register ViewSets with descriptive prefixes
|
||||
|
||||
# Core models
|
||||
router.register(r"parks", ParkViewSet, basename="park")
|
||||
# Note: rides registered below with list-only actions to enforce nested-only detail access
|
||||
|
||||
# Park-related models
|
||||
router.register(r"park-areas", ParkAreaViewSet, basename="park-area")
|
||||
router.register(r"park-locations", ParkLocationViewSet, basename="park-location")
|
||||
|
||||
# Company models
|
||||
router.register(r"companies", CompanyViewSet, basename="company")
|
||||
|
||||
# Ride-related models
|
||||
router.register(r"ride-models", RideModelViewSet, basename="ride-model")
|
||||
router.register(
|
||||
r"roller-coaster-stats", RollerCoasterStatsViewSet, basename="roller-coaster-stats"
|
||||
)
|
||||
router.register(r"ride-locations", RideLocationViewSet, basename="ride-location")
|
||||
router.register(r"ride-reviews", RideReviewViewSet, basename="ride-review")
|
||||
|
||||
# User-related models
|
||||
router.register(r"user-profiles", UserProfileViewSet, basename="user-profile")
|
||||
router.register(r"top-lists", TopListViewSet, basename="top-list")
|
||||
router.register(r"top-list-items", TopListItemViewSet, basename="top-list-item")
|
||||
|
||||
# Register read-only endpoints for reference data
|
||||
router.register(r"ref/parks", ParkReadOnlyViewSet, basename="park-ref")
|
||||
router.register(r"ref/rides", RideReadOnlyViewSet, basename="ride-ref")
|
||||
|
||||
# Register ranking endpoints
|
||||
router.register(r"rankings", RideRankingViewSet, basename="ranking")
|
||||
|
||||
@@ -120,50 +68,6 @@ urlpatterns = [
|
||||
PerformanceMetricsAPIView.as_view(),
|
||||
name="performance-metrics",
|
||||
),
|
||||
# History endpoints
|
||||
path(
|
||||
"history/timeline/",
|
||||
UnifiedHistoryViewSet.as_view({"get": "list"}),
|
||||
name="unified-history-timeline",
|
||||
),
|
||||
path(
|
||||
"parks/<str:park_slug>/history/",
|
||||
ParkHistoryViewSet.as_view({"get": "list"}),
|
||||
name="park-history-list",
|
||||
),
|
||||
path(
|
||||
"parks/<str:park_slug>/history/detail/",
|
||||
ParkHistoryViewSet.as_view({"get": "retrieve"}),
|
||||
name="park-history-detail",
|
||||
),
|
||||
path(
|
||||
"parks/<str:park_slug>/rides/<str:ride_slug>/history/",
|
||||
RideHistoryViewSet.as_view({"get": "list"}),
|
||||
name="ride-history-list",
|
||||
),
|
||||
path(
|
||||
"parks/<str:park_slug>/rides/<str:ride_slug>/history/detail/",
|
||||
RideHistoryViewSet.as_view({"get": "retrieve"}),
|
||||
name="ride-history-detail",
|
||||
),
|
||||
# Nested park-scoped ride endpoints
|
||||
path(
|
||||
"parks/<str:park_slug>/rides/",
|
||||
RideViewSet.as_view({"get": "list", "post": "create"}),
|
||||
name="park-rides-list",
|
||||
),
|
||||
path(
|
||||
"parks/<str:park_slug>/rides/<str:ride_slug>/",
|
||||
RideViewSet.as_view(
|
||||
{
|
||||
"get": "retrieve",
|
||||
"put": "update",
|
||||
"patch": "partial_update",
|
||||
"delete": "destroy",
|
||||
}
|
||||
),
|
||||
name="park-rides-detail",
|
||||
),
|
||||
# Trending system endpoints
|
||||
path("trending/content/", TrendingAPIView.as_view(), name="trending"),
|
||||
path("trending/new/", NewContentAPIView.as_view(), name="new-content"),
|
||||
@@ -173,12 +77,14 @@ urlpatterns = [
|
||||
TriggerRankingCalculationView.as_view(),
|
||||
name="trigger-ranking-calculation",
|
||||
),
|
||||
# Global rides list endpoint (detail access only via nested park routes)
|
||||
path(
|
||||
"rides/",
|
||||
RideViewSet.as_view({"get": "list"}),
|
||||
name="ride-list",
|
||||
),
|
||||
# Include all router-generated URLs
|
||||
# Domain-specific API endpoints
|
||||
path("parks/", include("apps.api.v1.parks.urls")),
|
||||
path("rides/", include("apps.api.v1.rides.urls")),
|
||||
path("accounts/", include("apps.api.v1.accounts.urls")),
|
||||
path("history/", include("apps.api.v1.history.urls")),
|
||||
path("email/", include("apps.api.v1.email.urls")),
|
||||
path("core/", include("apps.api.v1.core.urls")),
|
||||
path("maps/", include("apps.api.v1.maps.urls")),
|
||||
# Include router URLs (for rankings and any other router-registered endpoints)
|
||||
path("", include(router.urls)),
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user