feat: make video feature api to be course agnostic (#32173)
This commit is contained in:
@@ -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 """
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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}$',
|
||||
|
||||
Reference in New Issue
Block a user