From a00c2a7c4786c879615b813b591f679169015bfd Mon Sep 17 00:00:00 2001 From: Nimisha Asthagiri Date: Mon, 28 Dec 2015 12:12:39 -0500 Subject: [PATCH] Course API: Change field name from course_id to id --- lms/djangoapps/course_api/serializers.py | 5 ++++- lms/djangoapps/course_api/tests/test_serializers.py | 5 ++++- lms/djangoapps/course_api/views.py | 9 +++++++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/lms/djangoapps/course_api/serializers.py b/lms/djangoapps/course_api/serializers.py index 67b84ea5a7..a744658f8f 100644 --- a/lms/djangoapps/course_api/serializers.py +++ b/lms/djangoapps/course_api/serializers.py @@ -42,11 +42,11 @@ class CourseSerializer(serializers.Serializer): # pylint: disable=abstract-meth """ blocks_url = serializers.SerializerMethodField() - course_id = serializers.CharField(source='id', read_only=True) effort = serializers.CharField() end = serializers.DateTimeField() enrollment_start = serializers.DateTimeField() enrollment_end = serializers.DateTimeField() + id = serializers.CharField() # pylint: disable=invalid-name media = _CourseApiMediaCollectionSerializer(source='*') name = serializers.CharField(source='display_name_with_default_escaped') number = serializers.CharField(source='display_number_with_default') @@ -56,6 +56,9 @@ class CourseSerializer(serializers.Serializer): # pylint: disable=abstract-meth start_display = serializers.CharField() start_type = serializers.CharField() + # 'course_id' is a deprecated field, please use 'id' instead. + course_id = serializers.CharField(source='id', read_only=True) + def get_blocks_url(self, course_overview): """ Get the representation for SerializerMethodField `blocks_url` diff --git a/lms/djangoapps/course_api/tests/test_serializers.py b/lms/djangoapps/course_api/tests/test_serializers.py index 26820356bf..795c1f4208 100644 --- a/lms/djangoapps/course_api/tests/test_serializers.py +++ b/lms/djangoapps/course_api/tests/test_serializers.py @@ -33,7 +33,7 @@ class TestCourseSerializer(CourseApiFactoryMixin, ModuleStoreTestCase): self.request_factory = APIRequestFactory() self.expected_data = { - 'course_id': u'edX/toy/2012_Fall', + 'id': u'edX/toy/2012_Fall', 'name': u'Toy Course', 'number': u'toy', 'org': u'edX', @@ -54,6 +54,9 @@ class TestCourseSerializer(CourseApiFactoryMixin, ModuleStoreTestCase): 'enrollment_end': u'2015-07-15T00:00:00Z', 'blocks_url': u'http://testserver/api/courses/v1/blocks/?course_id=edX%2Ftoy%2F2012_Fall', 'effort': u'6 hours', + + # 'course_id' is a deprecated field, please use 'id' instead. + 'course_id': u'edX/toy/2012_Fall', } def _get_request(self, user=None): diff --git a/lms/djangoapps/course_api/views.py b/lms/djangoapps/course_api/views.py index 435578f032..c30d76c6a4 100644 --- a/lms/djangoapps/course_api/views.py +++ b/lms/djangoapps/course_api/views.py @@ -27,13 +27,14 @@ class CourseDetailView(DeveloperErrorViewMixin, RetrieveAPIView): Body consists of the following fields: - * blocks_url: used to fetch the course blocks - * course_id: Course key + * blocks_url: Used to fetch the course blocks * effort: A textual description of the weekly hours of effort expected in the course. * end: Date the course ends * enrollment_end: Date enrollment ends * enrollment_start: Date enrollment begins + * id: A unique identifier of the course; a serialized representation + of the opaque key identifying the course. * media: An object that contains named media items. Included here: * course_image: An image to show for the course. Represented as an object with the following fields: @@ -52,6 +53,10 @@ class CourseDetailView(DeveloperErrorViewMixin, RetrieveAPIView): * `"timestamp"`: generated form `start` timestamp * `"empty"`: the start date should not be shown + Deprecated fields: + + * course_id: Course key (use 'id' instead) + **Parameters:** username (optional):