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.
23 lines
1.0 KiB
23 lines
1.0 KiB
from django.urls import include, path
|
|
from django.views.decorators.cache import cache_page
|
|
from django.views.decorators.vary import vary_on_headers
|
|
from rest_framework.routers import SimpleRouter
|
|
from apps.dobodbi_calendar.views import CalendarList, AdjustmentConfigView, OccasionsList
|
|
from apps.dobodbi_calendar.views_admin import AdminCalendarOccasionViewSet
|
|
|
|
# Helper function for caching calendar endpoints
|
|
def cached_view(view_func):
|
|
return cache_page(60 * 60 * 6, key_prefix='calendar_api')(vary_on_headers('Accept-Language')(view_func))
|
|
|
|
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())),
|
|
]
|