Commit 8ec2de93 by Ned Batchelder

DRF 3.1 now uses request.data instead of request.DATA

parent e21ddabe
...@@ -497,8 +497,8 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -497,8 +497,8 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
""" """
# Get the User, Course ID, and Mode from the request. # Get the User, Course ID, and Mode from the request.
username = request.DATA.get('user', request.user.username) username = request.data.get('user', request.user.username)
course_id = request.DATA.get('course_details', {}).get('course_id') course_id = request.data.get('course_details', {}).get('course_id')
if not course_id: if not course_id:
return Response( return Response(
...@@ -516,7 +516,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -516,7 +516,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
} }
) )
mode = request.DATA.get('mode', CourseMode.HONOR) mode = request.data.get('mode', CourseMode.HONOR)
has_api_key_permissions = self.has_api_key_permissions(request) has_api_key_permissions = self.has_api_key_permissions(request)
...@@ -555,7 +555,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -555,7 +555,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
return embargo_response return embargo_response
try: try:
is_active = request.DATA.get('is_active') is_active = request.data.get('is_active')
# Check if the requested activation status is None or a Boolean # Check if the requested activation status is None or a Boolean
if is_active is not None and not isinstance(is_active, bool): if is_active is not None and not isinstance(is_active, bool):
return Response( return Response(
...@@ -565,7 +565,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -565,7 +565,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
} }
) )
enrollment_attributes = request.DATA.get('enrollment_attributes') enrollment_attributes = request.data.get('enrollment_attributes')
enrollment = api.get_enrollment(username, unicode(course_id)) enrollment = api.get_enrollment(username, unicode(course_id))
mode_changed = enrollment and mode is not None and enrollment['mode'] != mode mode_changed = enrollment and mode is not None and enrollment['mode'] != mode
active_changed = enrollment and is_active is not None and enrollment['is_active'] != is_active active_changed = enrollment and is_active is not None and enrollment['is_active'] != is_active
...@@ -605,7 +605,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn): ...@@ -605,7 +605,7 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
# Will reactivate inactive enrollments. # Will reactivate inactive enrollments.
response = api.add_enrollment(username, unicode(course_id), mode=mode, is_active=is_active) response = 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)
......
...@@ -45,7 +45,7 @@ class BasketsView(APIView): ...@@ -45,7 +45,7 @@ class BasketsView(APIView):
Returns Returns
Tuple (data_is_valid, course_key, error_msg) Tuple (data_is_valid, course_key, error_msg)
""" """
course_id = request.DATA.get('course_id') course_id = request.data.get('course_id')
if not course_id: if not course_id:
return False, None, u'Field course_id is missing.' return False, None, u'Field course_id is missing.'
...@@ -69,7 +69,7 @@ class BasketsView(APIView): ...@@ -69,7 +69,7 @@ class BasketsView(APIView):
Errors here aren't expected, but should not break the outer enrollment transaction. Errors here aren't expected, but should not break the outer enrollment transaction.
""" """
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:
try: try:
update_email_opt_in(user, course_key.org, email_opt_in) update_email_opt_in(user, course_key.org, email_opt_in)
......
...@@ -270,14 +270,14 @@ class ThreadViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet): ...@@ -270,14 +270,14 @@ class ThreadViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet):
Implements the POST method for the list endpoint as described in the Implements the POST method for the list endpoint as described in the
class docstring. class docstring.
""" """
return Response(create_thread(request, request.DATA)) return Response(create_thread(request, request.data))
def partial_update(self, request, thread_id): def partial_update(self, request, thread_id):
""" """
Implements the PATCH method for the instance endpoint as described in Implements the PATCH method for the instance endpoint as described in
the class docstring. the class docstring.
""" """
return Response(update_thread(request, thread_id, request.DATA)) return Response(update_thread(request, thread_id, request.data))
def destroy(self, request, thread_id): def destroy(self, request, thread_id):
""" """
...@@ -425,7 +425,7 @@ class CommentViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet): ...@@ -425,7 +425,7 @@ class CommentViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet):
Implements the POST method for the list endpoint as described in the Implements the POST method for the list endpoint as described in the
class docstring. class docstring.
""" """
return Response(create_comment(request, request.DATA)) return Response(create_comment(request, request.data))
def destroy(self, request, comment_id): def destroy(self, request, comment_id):
""" """
...@@ -440,4 +440,4 @@ class CommentViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet): ...@@ -440,4 +440,4 @@ class CommentViewSet(_ViewMixin, DeveloperErrorViewMixin, ViewSet):
Implements the PATCH method for the instance endpoint as described in Implements the PATCH method for the instance endpoint as described in
the class docstring. the class docstring.
""" """
return Response(update_comment(request, comment_id, request.DATA)) return Response(update_comment(request, comment_id, request.data))
...@@ -45,7 +45,7 @@ class Groups(generics.CreateAPIView, mixins.DestroyModelMixin): ...@@ -45,7 +45,7 @@ class Groups(generics.CreateAPIView, mixins.DestroyModelMixin):
serializer_class = serializers.GroupSerializer serializer_class = serializers.GroupSerializer
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA) serializer = self.get_serializer(data=request.data)
if not serializer.is_valid(): if not serializer.is_valid():
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
try: try:
...@@ -106,7 +106,7 @@ class GroupsMembers(generics.CreateAPIView, mixins.DestroyModelMixin): ...@@ -106,7 +106,7 @@ class GroupsMembers(generics.CreateAPIView, mixins.DestroyModelMixin):
serializer_class = serializers.GroupsMembersSerializer serializer_class = serializers.GroupsMembersSerializer
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA) serializer = self.get_serializer(data=request.data)
if not serializer.is_valid(): if not serializer.is_valid():
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
graph = facebook_graph_api() graph = facebook_graph_api()
......
...@@ -39,7 +39,7 @@ class UserSharing(generics.ListCreateAPIView): ...@@ -39,7 +39,7 @@ class UserSharing(generics.ListCreateAPIView):
serializer_class = serializers.UserSharingSerializar serializer_class = serializers.UserSharingSerializar
def create(self, request, *args, **kwargs): def create(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.DATA) serializer = self.get_serializer(data=request.data)
if serializer.is_valid(): if serializer.is_valid():
value = serializer.data['share_with_facebook_friends'] value = serializer.data['share_with_facebook_friends']
set_user_preference(request.user, "share_with_facebook_friends", value) set_user_preference(request.user, "share_with_facebook_friends", value)
......
...@@ -182,8 +182,8 @@ class UserCourseStatus(views.APIView): ...@@ -182,8 +182,8 @@ class UserCourseStatus(views.APIView):
""" """
Update the ID of the module that the specified user last visited in the specified course. Update the ID of the module that the specified user last visited in the specified course.
""" """
module_id = request.DATA.get("last_visited_module_id") module_id = request.data.get("last_visited_module_id")
modification_date_string = request.DATA.get("modification_date") modification_date_string = request.data.get("modification_date")
modification_date = None modification_date = None
if modification_date_string: if modification_date_string:
modification_date = dateparse.parse_datetime(modification_date_string) modification_date = dateparse.parse_datetime(modification_date_string)
......
...@@ -488,7 +488,7 @@ class TeamsListView(ExpandableFieldViewMixin, GenericAPIView): ...@@ -488,7 +488,7 @@ class TeamsListView(ExpandableFieldViewMixin, GenericAPIView):
field_errors = {} field_errors = {}
course_key = None course_key = None
course_id = request.DATA.get('course_id') course_id = request.data.get('course_id')
try: try:
course_key = CourseKey.from_string(course_id) course_key = CourseKey.from_string(course_id)
# Ensure the course exists # Ensure the course exists
...@@ -517,7 +517,7 @@ class TeamsListView(ExpandableFieldViewMixin, GenericAPIView): ...@@ -517,7 +517,7 @@ class TeamsListView(ExpandableFieldViewMixin, GenericAPIView):
if course_key and not has_team_api_access(request.user, course_key): if course_key and not has_team_api_access(request.user, course_key):
return Response(status=status.HTTP_403_FORBIDDEN) return Response(status=status.HTTP_403_FORBIDDEN)
data = request.DATA.copy() data = request.data.copy()
data['course_id'] = course_key data['course_id'] = course_key
serializer = CourseTeamCreationSerializer(data=data) serializer = CourseTeamCreationSerializer(data=data)
...@@ -1098,10 +1098,10 @@ class MembershipListView(ExpandableFieldViewMixin, GenericAPIView): ...@@ -1098,10 +1098,10 @@ class MembershipListView(ExpandableFieldViewMixin, GenericAPIView):
"""POST /api/team/v0/team_membership""" """POST /api/team/v0/team_membership"""
field_errors = {} field_errors = {}
if 'username' not in request.DATA: if 'username' not in request.data:
field_errors['username'] = build_api_error(ugettext_noop("Username is required.")) field_errors['username'] = build_api_error(ugettext_noop("Username is required."))
if 'team_id' not in request.DATA: if 'team_id' not in request.data:
field_errors['team_id'] = build_api_error(ugettext_noop("Team id is required.")) field_errors['team_id'] = build_api_error(ugettext_noop("Team id is required."))
if field_errors: if field_errors:
...@@ -1110,11 +1110,11 @@ class MembershipListView(ExpandableFieldViewMixin, GenericAPIView): ...@@ -1110,11 +1110,11 @@ class MembershipListView(ExpandableFieldViewMixin, GenericAPIView):
}, status=status.HTTP_400_BAD_REQUEST) }, status=status.HTTP_400_BAD_REQUEST)
try: try:
team = CourseTeam.objects.get(team_id=request.DATA['team_id']) team = CourseTeam.objects.get(team_id=request.data['team_id'])
except CourseTeam.DoesNotExist: except CourseTeam.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND) return Response(status=status.HTTP_404_NOT_FOUND)
username = request.DATA['username'] username = request.data['username']
if not has_team_api_access(request.user, team.course_id, access_username=username): if not has_team_api_access(request.user, team.course_id, access_username=username):
return Response(status=status.HTTP_404_NOT_FOUND) return Response(status=status.HTTP_404_NOT_FOUND)
......
...@@ -162,7 +162,7 @@ class AccountView(APIView): ...@@ -162,7 +162,7 @@ class AccountView(APIView):
""" """
try: try:
with transaction.commit_on_success(): with transaction.commit_on_success():
update_account_settings(request.user, request.DATA, username=username) update_account_settings(request.user, request.data, username=username)
except UserNotAuthorized: except UserNotAuthorized:
return Response(status=status.HTTP_403_FORBIDDEN if request.user.is_staff else status.HTTP_404_NOT_FOUND) return Response(status=status.HTTP_403_FORBIDDEN if request.user.is_staff else status.HTTP_404_NOT_FOUND)
except UserNotFound: except UserNotFound:
......
...@@ -107,7 +107,7 @@ class PreferencesView(APIView): ...@@ -107,7 +107,7 @@ class PreferencesView(APIView):
""" """
PATCH /api/user/v1/preferences/{username}/ PATCH /api/user/v1/preferences/{username}/
""" """
if not request.DATA or not getattr(request.DATA, "keys", None): if not request.data or not getattr(request.data, "keys", None):
error_message = _("No data provided for user preference update") error_message = _("No data provided for user preference update")
return Response( return Response(
{ {
...@@ -118,7 +118,7 @@ class PreferencesView(APIView): ...@@ -118,7 +118,7 @@ class PreferencesView(APIView):
) )
try: try:
with transaction.commit_on_success(): with transaction.commit_on_success():
update_user_preferences(request.user, request.DATA, username=username) update_user_preferences(request.user, request.data, username=username)
except UserNotAuthorized: except UserNotAuthorized:
return Response(status=status.HTTP_403_FORBIDDEN) return Response(status=status.HTTP_403_FORBIDDEN)
except UserNotFound: except UserNotFound:
...@@ -218,7 +218,7 @@ class PreferencesDetailView(APIView): ...@@ -218,7 +218,7 @@ class PreferencesDetailView(APIView):
PUT /api/user/v1/preferences/{username}/{preference_key} PUT /api/user/v1/preferences/{username}/{preference_key}
""" """
try: try:
set_user_preference(request.user, preference_key, request.DATA, username=username) set_user_preference(request.user, preference_key, request.data, username=username)
except UserNotAuthorized: except UserNotAuthorized:
return Response(status=status.HTTP_403_FORBIDDEN) return Response(status=status.HTTP_403_FORBIDDEN)
except UserNotFound: except UserNotFound:
......
...@@ -875,7 +875,7 @@ class UpdateEmailOptInPreference(APIView): ...@@ -875,7 +875,7 @@ class UpdateEmailOptInPreference(APIView):
assume False. assume False.
""" """
course_id = request.DATA['course_id'] course_id = request.data['course_id']
try: try:
org = locator.CourseLocator.from_string(course_id).org org = locator.CourseLocator.from_string(course_id).org
except InvalidKeyError: except InvalidKeyError:
...@@ -885,6 +885,6 @@ class UpdateEmailOptInPreference(APIView): ...@@ -885,6 +885,6 @@ class UpdateEmailOptInPreference(APIView):
content_type="text/plain" content_type="text/plain"
) )
# Only check for true. All other values are False. # Only check for true. All other values are False.
email_opt_in = request.DATA['email_opt_in'].lower() == 'true' email_opt_in = request.data['email_opt_in'].lower() == 'true'
update_email_opt_in(request.user, org, email_opt_in) update_email_opt_in(request.user, org, email_opt_in)
return HttpResponse(status=status.HTTP_200_OK) return HttpResponse(status=status.HTTP_200_OK)
...@@ -173,7 +173,7 @@ class RetrievePatchAPIView(RetrieveModelMixin, UpdateModelMixin, GenericAPIView) ...@@ -173,7 +173,7 @@ class RetrievePatchAPIView(RetrieveModelMixin, UpdateModelMixin, GenericAPIView)
def patch(self, request, *args, **kwargs): def patch(self, request, *args, **kwargs):
"""Checks for validation errors, then updates the model using the UpdateModelMixin.""" """Checks for validation errors, then updates the model using the UpdateModelMixin."""
field_errors = self._validate_patch(request.DATA) field_errors = self._validate_patch(request.data)
if field_errors: if field_errors:
return Response({'field_errors': field_errors}, status=status.HTTP_400_BAD_REQUEST) return Response({'field_errors': field_errors}, status=status.HTTP_400_BAD_REQUEST)
return self.partial_update(request, *args, **kwargs) return self.partial_update(request, *args, **kwargs)
......
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