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.
 
 
 
 

50 lines
3.6 KiB

from django.urls import path, re_path, include
from rest_framework.routers import DefaultRouter
from . import views
router = DefaultRouter()
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')
# 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')
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('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'),
]