From af96cb1b213cab61968b7c5fc2f518e109a02edc Mon Sep 17 00:00:00 2001 From: Kristin Aoki <42981026+KristinAoki@users.noreply.github.com> Date: Thu, 4 May 2023 13:33:07 -0400 Subject: [PATCH] feat: make video feature api to be course agnostic (#32173) --- cms/djangoapps/contentstore/views/tests/test_videos.py | 7 +++---- cms/djangoapps/contentstore/views/videos.py | 10 ++-------- cms/urls.py | 6 +----- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/cms/djangoapps/contentstore/views/tests/test_videos.py b/cms/djangoapps/contentstore/views/tests/test_videos.py index 7d02d667a6..0d67cf9e52 100644 --- a/cms/djangoapps/contentstore/views/tests/test_videos.py +++ b/cms/djangoapps/contentstore/views/tests/test_videos.py @@ -16,6 +16,7 @@ import ddt import pytz from django.conf import settings from django.test.utils import override_settings +from django.urls import reverse from edx_toggles.toggles.testutils import override_waffle_flag, override_waffle_switch from edxval.api import ( create_or_update_transcript_preferences, @@ -1574,7 +1575,6 @@ class VideoUrlsCsvTestCase( @ddt.ddt class GetVideoFeaturesTestCase( - VideoStudioAccessTestsMixin, CourseTestCase ): """Test cases for the get_video_features endpoint """ @@ -1582,10 +1582,9 @@ class GetVideoFeaturesTestCase( super().setUp() self.url = self.get_url_for_course_key() - def get_url_for_course_key(self, course_id=None): + def get_url_for_course_key(self): """ Helper to generate a url for a course key """ - course_id = course_id or str(self.course.id) - return reverse_course_url("video_features", course_id) + return reverse("video_features") def test_basic(self): """ Test for expected return keys """ diff --git a/cms/djangoapps/contentstore/views/videos.py b/cms/djangoapps/contentstore/views/videos.py index 3daa65b911..1286d9037f 100644 --- a/cms/djangoapps/contentstore/views/videos.py +++ b/cms/djangoapps/contentstore/views/videos.py @@ -45,7 +45,6 @@ from rest_framework.response import Response from common.djangoapps.edxmako.shortcuts import render_to_response from common.djangoapps.util.json_request import JsonResponse, expect_json -from common.djangoapps.util.views import ensure_valid_course_key from openedx.core.djangoapps.video_config.models import VideoTranscriptEnabledFlag from openedx.core.djangoapps.video_config.toggles import PUBLIC_VIDEO_SHARE from openedx.core.djangoapps.video_pipeline.config.waffle import ( @@ -278,19 +277,14 @@ def video_images_upload_enabled(request): return JsonResponse({'allowThumbnailUpload': True}) -@ensure_valid_course_key @login_required @require_GET -def get_video_features(request, course_key_string): +def get_video_features(request): """ Return a dict with info about which video features are enabled """ - course_key = CourseKey.from_string(course_key_string) - course = get_course_and_check_access(course_key, request.user) - if not course: - return HttpResponseNotFound() features = { 'allowThumbnailUpload': VIDEO_IMAGE_UPLOAD_ENABLED.is_enabled(), - 'videoSharingEnabled': PUBLIC_VIDEO_SHARE.is_enabled(course_key), + 'videoSharingEnabled': PUBLIC_VIDEO_SHARE.is_enabled(), } return JsonResponse(features) diff --git a/cms/urls.py b/cms/urls.py index e96fdc8c87..eb34f241fd 100644 --- a/cms/urls.py +++ b/cms/urls.py @@ -164,11 +164,7 @@ urlpatterns = oauth2_urlpatterns + [ contentstore_views.video_images_handler, name='video_images_handler'), path('video_images_upload_enabled', contentstore_views.video_images_upload_enabled, name='video_images_upload_enabled'), - re_path( - fr'^video_features/{settings.COURSE_KEY_PATTERN}', - contentstore_views.get_video_features, - name='video_features' - ), + path('video_features/', contentstore_views.get_video_features, name='video_features'), re_path(fr'^transcript_preferences/{settings.COURSE_KEY_PATTERN}$', contentstore_views.transcript_preferences_handler, name='transcript_preferences_handler'), re_path(fr'^transcript_credentials/{settings.COURSE_KEY_PATTERN}$',