Commit 21746f1e by Ahsan Ulhaq

update error messages in enrollment API

ECOM-4763
parent 39a461d8
...@@ -92,15 +92,15 @@ class EnrollmentTestMixin(object): ...@@ -92,15 +92,15 @@ class EnrollmentTestMixin(object):
if expected_status == status.HTTP_200_OK: if expected_status == status.HTTP_200_OK:
data = json.loads(response.content) data = json.loads(response.content)
self.assertEqual(course_id, data['course_details']['course_id']) self.assertEqual(course_id, data['enrollment_detail']['course_details']['course_id'])
if mode is not None: if mode is not None:
self.assertEqual(mode, data['mode']) self.assertEqual(mode, data['enrollment_detail']['mode'])
if is_active is not None: if is_active is not None:
self.assertEqual(is_active, data['is_active']) self.assertEqual(is_active, data['enrollment_detail']['is_active'])
else: else:
self.assertTrue(data['is_active']) self.assertTrue(data['enrollment_detail']['is_active'])
if as_server: if as_server:
# Verify that an audit message was logged. # Verify that an audit message was logged.
...@@ -503,7 +503,11 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase): ...@@ -503,7 +503,11 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase):
def test_enrollment_already_enrolled(self): def test_enrollment_already_enrolled(self):
response = self.assert_enrollment_status() response = self.assert_enrollment_status()
repeat_response = self.assert_enrollment_status(expected_status=status.HTTP_200_OK) repeat_response = self.assert_enrollment_status(expected_status=status.HTTP_200_OK)
self.assertEqual(json.loads(response.content), json.loads(repeat_response.content)) response_enrollment_detail = json.loads(response.content)
repeat_response_enrollment_detail = json.loads(repeat_response.content)
self.assertEqual(
response_enrollment_detail['enrollment_detail'], repeat_response_enrollment_detail['enrollment_detail']
)
def test_get_enrollment_with_invalid_key(self): def test_get_enrollment_with_invalid_key(self):
resp = self.client.post( resp = self.client.post(
......
...@@ -600,7 +600,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -600,7 +600,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
log.warning(msg) log.warning(msg)
return Response(status=status.HTTP_400_BAD_REQUEST, data={"message": msg}) return Response(status=status.HTTP_400_BAD_REQUEST, data={"message": msg})
response = api.update_enrollment( enrollment_detail = api.update_enrollment(
username, username,
unicode(course_id), unicode(course_id),
mode=mode, mode=mode,
...@@ -609,20 +609,28 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -609,20 +609,28 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
) )
else: else:
# Will reactivate inactive enrollments. # Will reactivate inactive enrollments.
response = api.add_enrollment(username, unicode(course_id), mode=mode, is_active=is_active) enrollment_detail = api.add_enrollment(username, unicode(course_id), mode=mode, is_active=is_active)
email_opt_in = request.data.get('email_opt_in', None) email_opt_in = request.data.get('email_opt_in', None)
if email_opt_in is not None: if email_opt_in is not None:
org = course_id.org org = course_id.org
update_email_opt_in(request.user, org, email_opt_in) update_email_opt_in(request.user, org, email_opt_in)
return Response(response) return Response(
status=status.HTTP_200_OK,
data={
"message": (
u"The user [{username}] has already been enrolled in course run [{course_id}]."
).format(username=username, course_id=course_id),
"enrollment_detail": enrollment_detail
}
)
except CourseModeNotFoundError as error: except CourseModeNotFoundError as error:
return Response( return Response(
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
data={ data={
"message": ( "message": (
u"The course mode '{mode}' is not available for course '{course_id}'." u"The [{mode}] course mode is expired or otherwise unavailable for course run [{course_id}]."
).format(mode=mode, course_id=course_id), ).format(mode=mode, course_id=course_id),
"course_details": error.data "course_details": error.data
}) })
...@@ -634,7 +642,15 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -634,7 +642,15 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
} }
) )
except CourseEnrollmentExistsError as error: except CourseEnrollmentExistsError as error:
return Response(data=error.enrollment) return Response(
status=status.HTTP_200_OK,
data={
"message": (
u"An enrollment already exists for user [{username}] in course run [{course_id}]."
).format(username=username, course_id=course_id),
"enrollment_detail": error.enrollment
}
)
except CourseEnrollmentError: except CourseEnrollmentError:
return Response( return Response(
status=status.HTTP_400_BAD_REQUEST, status=status.HTTP_400_BAD_REQUEST,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment