Browse Source

refactor(urls): update URL patterns to use re_path for slug-based routes

- Changed URL configurations in article, course, and transaction apps to use re_path for improved regex matching of slugs.
- This update enhances flexibility in slug handling across various endpoints, ensuring consistency in URL patterns.
master
mortezaei 6 months ago
parent
commit
2e1fbfdcdc
  1. 4
      apps/article/urls.py
  2. 20
      apps/course/urls.py
  3. 4
      apps/transaction/urls.py

4
apps/article/urls.py

@ -1,4 +1,4 @@
from django.urls import path
from django.urls import path, re_path
from .views import *
app_name = 'article'
@ -9,7 +9,7 @@ urlpatterns = [
path('collections/', MiddleArticleCollectionListView.as_view(), name='collection-list'),
path('list/', ArticleListAPIView.as_view(), name='podcast-list'),
path('detail/<slug:slug>/', ArticleDetailAPIView.as_view(), name='podcast-detail'),
re_path(r'detail/(?P<slug>[\w-]+)/$', ArticleDetailAPIView.as_view(), name='podcast-detail'),
# # User playlist endpoints
# path('user-playlist/', UserPlaylistCreateAPIView.as_view(), name='user-playlist-create'),

20
apps/course/urls.py

@ -1,5 +1,5 @@
from django.urls import path
from django.urls import path, re_path
from . import views
@ -11,25 +11,25 @@ urlpatterns = [
path('my-courses/', views.MyCourseListAPIView.as_view(), name='course-my-courses-list'),
path('lesson/completion/', views.LessonCompletionCreateAPIView.as_view(), name='lesson-completion'),
path('professors/', views.ProfessorListAPIView.as_view(), name='course-professor-list'),
path('professors/<slug:slug>/courses/', views.ProfessorCourseListAPIView.as_view(), name='course-professor-course-list'),
path('professors/<slug:slug>/', views.ProfessorDetailAPIView.as_view(), name='course-professor-detail'),
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'),
path('<slug:slug>/online/validate/', views.CourseOnlineClassTokenValidateAPIView.as_view(), name='course-online-validate'),
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'),
path('<slug:slug>/online/room/create/', views.CourseLiveSessionRoomCreateAPIView.as_view(), name='course-live-session-room-create'),
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('<int:course_id>/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'),
path('<slug:slug>/', views.CourseDetailAPIView.as_view(), name='course-detail'),
path('<slug:slug>/attachments/', views.AttachmentListAPIView.as_view(), name='course-attachment-list'),
path('<slug:slug>/glossaries/', views.GlossaryListAPIView.as_view(), name='course-glossary-list'),
path('<slug:slug>/lessons/', views.LessonListView.as_view(), name='course-lesson-list'),
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'),
path('lesson/<int:id>/', views.LessonDetailView.as_view(), name='lesson-detail'),
path('<slug:slug>/participants/', views.CourseParticipantsView.as_view(), name='course-participant-list'),
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'),

4
apps/transaction/urls.py

@ -1,12 +1,12 @@
from django.urls import path
from django.urls import path, re_path
from . import views
urlpatterns = [
path('<slug:slug>/join/', views.TransactionParticipantCreateView.as_view(), name='transaction-participant-create'),
re_path(r'(?P<slug>[\w-]+)/join/$', views.TransactionParticipantCreateView.as_view(), name='transaction-participant-create'),
path('list/', views.TransactiontListView.as_view(), name='transaction-list'),
path('<int:pk>/delete/', views.SoftDeleteTransactionParticipantView.as_view(), name='soft-delete-transaction-participant'),
path('<int:transaction_id>/receipts/upload/', views.UploadTransactionReceiptsView.as_view(), name='upload-transaction-receipts'),

Loading…
Cancel
Save