Browse Source

online class auto save recordings normalized with room_slug of course , and route path of recording live sessions is updated

master
Mohsen Taba 2 months ago
parent
commit
e85be0301e
  1. 2
      apps/course/urls.py
  2. 19
      apps/course/views/live_session.py

2
apps/course/urls.py

@ -18,7 +18,7 @@ urlpatterns = [
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('<int:course_id>/live-sessions/recorded-file/', views.CourseLiveSessionRecordedFileAPIView.as_view(), name='course-live-session-recorded-file'),
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'),

19
apps/course/views/live_session.py

@ -608,9 +608,9 @@ class CourseLiveSessionRecordedFileAPIView(GenericAPIView):
tags=["Imam-Javad - Course"],
manual_parameters=[
openapi.Parameter(
'course_id', openapi.IN_PATH,
description="Course ID",
type=openapi.TYPE_INTEGER,
'room_slug', openapi.IN_PATH,
description="Room Slug (e.g. room-16)",
type=openapi.TYPE_STRING,
required=True
)
],
@ -620,8 +620,17 @@ class CourseLiveSessionRecordedFileAPIView(GenericAPIView):
)
}
)
def patch(self, request, course_id, *args, **kwargs):
logger.info(f"[LiveSession Recorded File] Request from user_id={request.user.id} for course_id={course_id}")
def patch(self, request, room_slug, *args, **kwargs):
logger.info(f"[LiveSession Recorded File] Request from user_id={request.user.id} for room_slug={room_slug}")
import re
match = re.search(r'\d+', room_slug)
if not match:
logger.error(f"[LiveSession Recorded File] Invalid room_slug: {room_slug}")
raise AppAPIException({'message': f'Invalid room slug: {room_slug}'}, status_code=status.HTTP_400_BAD_REQUEST)
course_id = int(match.group())
logger.info(f"[LiveSession Recorded File] Extracted course_id={course_id} from room_slug={room_slug}")
course = get_object_or_404(Course, id=course_id)

Loading…
Cancel
Save