from django.urls import path, include from rest_framework import permissions from rest_framework.routers import DefaultRouter from drf_yasg.views import get_schema_view from drf_yasg import openapi from .auth import ObtainToken from .views import ( AuthorBalanceViewSet, AuthorRequestViewSet, BanerViewSet, ConfigViewSet, CategoryViewSet, CourseViewSet, CommentViewSet, MaterialViewSet, LikeViewSet, ImageViewSet, TextViewSet, ImageTextViewSet, VideoViewSet, GalleryViewSet, GalleryImageViewSet, UserViewSet, LessonViewSet, ImageObjectViewSet, SchoolScheduleViewSet, LiveLessonViewSet, PaymentViewSet, ) router = DefaultRouter() router.register(r'author-requests', AuthorRequestViewSet, base_name='author-requests') router.register(r'author-balance', AuthorBalanceViewSet, base_name='author-balance') router.register(r'baners', BanerViewSet, base_name='baners') router.register(r'categories', CategoryViewSet, base_name='categories') router.register(r'courses', CourseViewSet, base_name='courses') router.register(r'comments', CommentViewSet, base_name='comments') router.register(r'materials', MaterialViewSet, base_name='materials') router.register(r'lessons', LessonViewSet, base_name='lessons') router.register(r'likes', LikeViewSet, base_name='likes') router.register(r'live-lesson', LiveLessonViewSet, base_name='live-lesson') router.register(r'payments', PaymentViewSet, base_name='payments') router.register(r'image-objects', ImageObjectViewSet, base_name='image-objects') router.register(r'images', ImageViewSet, base_name='images') router.register(r'texts', TextViewSet, base_name='texts') router.register(r'image-texts', ImageTextViewSet, base_name='image-texts') router.register(r'videos', VideoViewSet, base_name='videos') router.register(r'galleries', GalleryViewSet, base_name='galleries') router.register(r'gallery-images', GalleryImageViewSet, base_name='gallery-images') router.register(r'school-schedules', SchoolScheduleViewSet, base_name='school-schedules') router.register(r'users', UserViewSet, base_name='users') # router.register(r'configs', ConfigViewSet, base_name='configs') schema_view = get_schema_view( openapi.Info( title="Lil Sity API", default_version='v1', description="Routes of Lil City project", ), validators=['flex', 'ssv'], public=False, permission_classes=(permissions.AllowAny,), ) urlpatterns = [ path('api-token-auth/', ObtainToken.as_view(), name='api-token-auth'), path('configs/', ConfigViewSet.as_view(), name='configs'), path('swagger(.json|.yaml)', schema_view.without_ui(cache_timeout=None), name='schema-json'), path('swagger/', schema_view.with_ui('swagger', cache_timeout=None), name='schema-swagger-ui'), path('redoc/', schema_view.with_ui('redoc', cache_timeout=None), name='schema-redoc'), path('', include((router.urls, 'api-root')), name='api-root'), ]