You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
21 lines
990 B
21 lines
990 B
from django.urls import include, path
|
|
from rest_framework.routers import SimpleRouter
|
|
from utils.cache import smart_cached_view
|
|
from apps.dobodbi_calendar.views import CalendarList, AdjustmentConfigView, OccasionsList
|
|
from apps.dobodbi_calendar.views_admin import AdminCalendarOccasionViewSet
|
|
|
|
# Helper function for caching calendar endpoints with smart invalidation and force-refresh support
|
|
cached_view = smart_cached_view(60 * 60 * 6, key_prefix='calendar_api')
|
|
|
|
admin_router = SimpleRouter()
|
|
admin_router.register(r'occasions', AdminCalendarOccasionViewSet, basename='admin-calendar-occasions')
|
|
|
|
# Hide admin viewsets from swagger
|
|
for prefix, viewset, basename in admin_router.registry:
|
|
viewset.swagger_schema = None
|
|
urlpatterns = [
|
|
path('admin/', include(admin_router.urls)),
|
|
path('sync-occasions/', cached_view(CalendarList.as_view())),
|
|
path('adjustemnts/', cached_view(AdjustmentConfigView.as_view())),
|
|
path('occasions/', cached_view(OccasionsList.as_view())),
|
|
]
|