feat: make video feature api to be course agnostic (#32173)

This commit is contained in:
Kristin Aoki
2023-05-04 13:33:07 -04:00
committed by GitHub
parent 9e2bb3e2d1
commit af96cb1b21
3 changed files with 6 additions and 17 deletions

View File

@@ -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 """

View File

@@ -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)

View File

@@ -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}$',