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') 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[\w-]+)/courses/$', views.ProfessorCourseListAPIView.as_view(), name='course-professor-course-list'), re_path(r'professors/(?P[\w-]+)/$', views.ProfessorDetailAPIView.as_view(), name='course-professor-detail'), path('/online/token/', views.CourseOnlineClassTokenAPIView.as_view(), name='course-online-token'), re_path(r'(?P[\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[\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//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[\w-]+)/$', views.CourseDetailAPIView.as_view(), name='course-detail'), re_path(r'(?P[\w-]+)/attachments/$', views.AttachmentListAPIView.as_view(), name='course-attachment-list'), re_path(r'(?P[\w-]+)/glossaries/$', views.GlossaryListAPIView.as_view(), name='course-glossary-list'), re_path(r'(?P[\w-]+)/lessons/$', views.LessonListView.as_view(), name='course-lesson-list'), re_path(r'v2/(?P[\w-]+)/lessons/$', views.LessonListV2APIView.as_view(), name='course-lesson-list-v2'), path('lesson//', views.LessonDetailView.as_view(), name='lesson-detail'), re_path(r'(?P[\w-]+)/participants/$', views.CourseParticipantsView.as_view(), name='course-participant-list'), # path('/participant/join/', views.ParticipantCreateView.as_view(), name='course-participant-join'), ]