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.
58 lines
4.2 KiB
58 lines
4.2 KiB
|
|
from django.urls import path, re_path, include
|
|
from rest_framework.routers import DefaultRouter, SimpleRouter
|
|
from . import views
|
|
|
|
router = SimpleRouter()
|
|
router.register(r'admin/courses', views.AdminCourseViewSet, basename='admin-courses')
|
|
router.register(r'admin/chapters', views.AdminChapterViewSet, basename='admin-chapters')
|
|
router.register(r'admin/course-lessons', views.AdminCourseLessonViewSet, basename='admin-course-lessons')
|
|
router.register(r'admin/course-attachments', views.AdminCourseAttachmentViewSet, basename='admin-course-attachments')
|
|
router.register(r'admin/course-glossaries', views.AdminCourseGlossaryViewSet, basename='admin-course-glossaries')
|
|
router.register(r'admin/live-sessions', views.AdminLiveSessionViewSet, basename='admin-live-sessions')
|
|
|
|
# Base model admin routes for the Repository Page
|
|
router.register(r'admin/categories', views.AdminCourseCategoryViewSet, basename='admin-categories')
|
|
router.register(r'admin/lessons', views.AdminLessonViewSet, basename='admin-lessons-base')
|
|
router.register(r'admin/attachments', views.AdminAttachmentViewSet, basename='admin-attachments-base')
|
|
router.register(r'admin/glossaries', views.AdminGlossaryViewSet, basename='admin-glossaries-base')
|
|
|
|
# Hide admin viewsets from swagger
|
|
for prefix, viewset, basename in router.registry:
|
|
viewset.swagger_schema = None
|
|
|
|
urlpatterns = [
|
|
path('', include(router.urls)),
|
|
path('categories/', views.CourseCategoryAPIView.as_view(), name='course-categories'),
|
|
path('', views.CourseListAPIView.as_view(), name='course-list'),
|
|
path('my-courses/', views.MyCourseListAPIView.as_view(), name='course-my-courses-list'),
|
|
path('lesson/completion/', views.LessonCompletionToggleAPIView.as_view(), name='lesson-completion'),
|
|
path('professors/', views.ProfessorListAPIView.as_view(), name='course-professor-list'),
|
|
re_path(r'professors/(?P<slug>[\w-]+)/courses/$', views.ProfessorCourseListAPIView.as_view(), name='course-professor-course-list'),
|
|
re_path(r'professors/(?P<slug>[\w-]+)/$', views.ProfessorDetailAPIView.as_view(), name='course-professor-detail'),
|
|
path('<int:pk>/online/token/', views.CourseOnlineClassTokenAPIView.as_view(), name='course-online-token'),
|
|
re_path(r'(?P<slug>[\w-]+)/online/validate/$', views.CourseOnlineClassTokenValidateAPIView.as_view(), name='course-online-validate'),
|
|
path('online/token/validate/', views.CourseOnlineClassTokenValidateAPIView.as_view(), name='course-online-token-validate'),
|
|
re_path(r'(?P<slug>[\w-]+)/online/room/create/$', views.CourseLiveSessionRoomCreateAPIView.as_view(), name='course-live-session-room-create'),
|
|
path('online/room/token/', views.CourseLiveSessionTokenAPIView.as_view(), name='course-live-session-token'),
|
|
path('online/room/recording/', views.CourseLiveSessionRecordingAPIView.as_view(), name='course-live-session-recording'),
|
|
path('online/room/recording/web-egress/callback/', views.CourseLiveSessionWebEgressCallbackAPIView.as_view(), name='course-live-session-web-egress-callback'),
|
|
path('online/room/set-recording-title/', views.CourseLiveSessionSetRecordingTitleAPIView.as_view(), name='course-live-session-set-recording-title'),
|
|
path('live-sessions/<str:room_slug>/recorded-file/', views.CourseLiveSessionRecordedFileAPIView.as_view(), name='course-live-session-recorded-file'),
|
|
|
|
# PlugNMeet webhook endpoint
|
|
path('plugnmeet/webhook/', views.PlugNMeetWebhookAPIView.as_view(), name='plugnmeet-webhook'),
|
|
|
|
re_path(r'(?P<slug>[\w-]+)/$', views.CourseDetailAPIView.as_view(), name='course-detail'),
|
|
re_path(r'(?P<slug>[\w-]+)/attachments/$', views.AttachmentListAPIView.as_view(), name='course-attachment-list'),
|
|
re_path(r'(?P<slug>[\w-]+)/glossaries/$', views.GlossaryListAPIView.as_view(), name='course-glossary-list'),
|
|
re_path(r'(?P<slug>[\w-]+)/lessons/$', views.LessonListView.as_view(), name='course-lesson-list'),
|
|
re_path(r'v2/(?P<slug>[\w-]+)/lessons/$', views.LessonListV2APIView.as_view(), name='course-lesson-list-v2'),
|
|
path('lesson/<int:id>/', views.LessonDetailView.as_view(), name='lesson-detail'),
|
|
|
|
re_path(r'(?P<slug>[\w-]+)/participants/$', views.CourseParticipantsView.as_view(), name='course-participant-list'),
|
|
|
|
|
|
# path('<slug:slug>/participant/join/', views.ParticipantCreateView.as_view(), name='course-participant-join'),
|
|
|
|
]
|