Browse Source

Use serializer.is_valid(raise_exception=True) instead of more verbose return Response(...)

Rafał Pitoń 7 years ago
parent
commit
1ffc144f00

+ 1 - 2
misago/markup/api.py

@@ -10,8 +10,7 @@ from . import common_flavour, finalise_markup
 @api_view(['POST'])
 @api_view(['POST'])
 def parse_markup(request):
 def parse_markup(request):
     serializer = MarkupSerializer(data=request.data)
     serializer = MarkupSerializer(data=request.data)
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     parsing_result = common_flavour(
     parsing_result = common_flavour(
         request,
         request,

+ 1 - 2
misago/threads/api/postendpoints/delete.py

@@ -35,8 +35,7 @@ def delete_bulk(request, thread):
         },
         },
     )
     )
 
 
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     for post in serializer.validated_data['posts']:
     for post in serializer.validated_data['posts']:
         post.delete()
         post.delete()

+ 1 - 2
misago/threads/api/postendpoints/merge.py

@@ -19,8 +19,7 @@ def posts_merge_endpoint(request, thread):
         },
         },
     )
     )
 
 
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     posts = serializer.validated_data['posts']
     posts = serializer.validated_data['posts']
     first_post, merged_posts = posts[0], posts[1:]
     first_post, merged_posts = posts[0], posts[1:]

+ 2 - 3
misago/threads/api/postendpoints/move.py

@@ -18,9 +18,8 @@ def posts_move_endpoint(request, thread, viewmodel):
             'viewmodel': viewmodel,
             'viewmodel': viewmodel,
         }
         }
     )
     )
-
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    
+    serializer.is_valid(raise_exception=True)
 
 
     new_thread = serializer.validated_data['new_thread']
     new_thread = serializer.validated_data['new_thread']
 
 

+ 1 - 2
misago/threads/api/postendpoints/patch_post.py

@@ -146,8 +146,7 @@ def post_patch_endpoint(request, post):
 
 
 def bulk_patch_endpoint(request, thread):
 def bulk_patch_endpoint(request, thread):
     serializer = BulkPatchSerializer(data=request.data)
     serializer = BulkPatchSerializer(data=request.data)
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     posts = clean_posts_for_patch(request, thread, serializer.data['ids'])
     posts = clean_posts_for_patch(request, thread, serializer.data['ids'])
 
 

+ 1 - 2
misago/threads/api/postendpoints/split.py

@@ -21,8 +21,7 @@ def posts_split_endpoint(request, thread):
         },
         },
     )
     )
 
 
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     split_posts_to_new_thread(request, thread, serializer.validated_data)
     split_posts_to_new_thread(request, thread, serializer.validated_data)
 
 

+ 1 - 2
misago/threads/api/threadendpoints/delete.py

@@ -26,8 +26,7 @@ def delete_bulk(request, viewmodel):
         },
         },
     )
     )
 
 
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     for thread in serializer.validated_data['threads']:
     for thread in serializer.validated_data['threads']:
         with transaction.atomic():
         with transaction.atomic():

+ 1 - 2
misago/threads/api/threadendpoints/patch.py

@@ -320,8 +320,7 @@ def thread_patch_endpoint(request, thread):
 
 
 def bulk_patch_endpoint(request, viewmodel):
 def bulk_patch_endpoint(request, viewmodel):
     serializer = BulkPatchSerializer(data=request.data)
     serializer = BulkPatchSerializer(data=request.data)
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     threads = clean_threads_for_patch(request, viewmodel, serializer.data['ids'])
     threads = clean_threads_for_patch(request, viewmodel, serializer.data['ids'])
 
 

+ 15 - 17
misago/threads/api/threadpoll.py

@@ -64,19 +64,18 @@ class ViewSet(viewsets.ViewSet):
         )
         )
 
 
         serializer = NewPollSerializer(instance, data=request.data)
         serializer = NewPollSerializer(instance, data=request.data)
-        if serializer.is_valid():
-            serializer.save()
+        serializer.is_valid(raise_exception=True)
 
 
-            add_acl(request.user, instance)
-            for choice in instance.choices:
-                choice['selected'] = False
+        serializer.save()
 
 
-            thread.has_poll = True
-            thread.save()
+        add_acl(request.user, instance)
+        for choice in instance.choices:
+            choice['selected'] = False
 
 
-            return Response(PollSerializer(instance).data)
-        else:
-            return Response(serializer.errors, status=400)
+        thread.has_poll = True
+        thread.save()
+
+        return Response(PollSerializer(instance).data)
 
 
     @transaction.atomic
     @transaction.atomic
     def update(self, request, thread_pk, pk=None):
     def update(self, request, thread_pk, pk=None):
@@ -86,15 +85,14 @@ class ViewSet(viewsets.ViewSet):
         allow_edit_poll(request.user, instance)
         allow_edit_poll(request.user, instance)
 
 
         serializer = EditPollSerializer(instance, data=request.data)
         serializer = EditPollSerializer(instance, data=request.data)
-        if serializer.is_valid():
-            serializer.save()
+        serializer.is_valid(raise_exception=True)
 
 
-            add_acl(request.user, instance)
-            instance.make_choices_votes_aware(request.user)
+        serializer.save()
 
 
-            return Response(PollSerializer(instance).data)
-        else:
-            return Response(serializer.errors, status=400)
+        add_acl(request.user, instance)
+        instance.make_choices_votes_aware(request.user)
+
+        return Response(PollSerializer(instance).data)
 
 
     @transaction.atomic
     @transaction.atomic
     def delete(self, request, thread_pk, pk=None):
     def delete(self, request, thread_pk, pk=None):

+ 13 - 16
misago/users/api/userendpoints/avatar.py

@@ -209,23 +209,20 @@ AVATAR_TYPES = {
 def moderate_avatar_endpoint(request, profile):
 def moderate_avatar_endpoint(request, profile):
     if request.method == "POST":
     if request.method == "POST":
         is_avatar_locked = profile.is_avatar_locked
         is_avatar_locked = profile.is_avatar_locked
+
         serializer = ModerateAvatarSerializer(profile, data=request.data)
         serializer = ModerateAvatarSerializer(profile, data=request.data)
-        if serializer.is_valid():
-            if serializer.validated_data['is_avatar_locked'] and not is_avatar_locked:
-                avatars.dynamic.set_avatar(profile)
-            serializer.save()
-
-            return Response({
-                'avatars': profile.avatars,
-                'is_avatar_locked': int(profile.is_avatar_locked),
-                'avatar_lock_user_message': profile.avatar_lock_user_message,
-                'avatar_lock_staff_message': profile.avatar_lock_staff_message,
-            })
-        else:
-            return Response(
-                serializer.errors,
-                status=400,
-            )
+        serializer.is_valid(raise_exception=True)
+
+        if serializer.validated_data['is_avatar_locked'] and not is_avatar_locked:
+            avatars.dynamic.set_avatar(profile)
+        serializer.save()
+
+        return Response({
+            'avatars': profile.avatars,
+            'is_avatar_locked': int(profile.is_avatar_locked),
+            'avatar_lock_user_message': profile.avatar_lock_user_message,
+            'avatar_lock_staff_message': profile.avatar_lock_staff_message,
+        })
     else:
     else:
         return Response({
         return Response({
             'is_avatar_locked': int(profile.is_avatar_locked),
             'is_avatar_locked': int(profile.is_avatar_locked),

+ 1 - 2
misago/users/api/userendpoints/changeemail.py

@@ -14,8 +14,7 @@ def change_email_endpoint(request, pk=None):
         context={'user': request.user},
         context={'user': request.user},
     )
     )
 
 
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     token = store_new_credential(request, 'email', serializer.validated_data['new_email'])
     token = store_new_credential(request, 'email', serializer.validated_data['new_email'])
 
 

+ 1 - 2
misago/users/api/userendpoints/changepassword.py

@@ -14,8 +14,7 @@ def change_password_endpoint(request, pk=None):
         context={'user': request.user},
         context={'user': request.user},
     )
     )
 
 
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     token = store_new_credential(
     token = store_new_credential(
         request, 'password', serializer.validated_data['new_password']
         request, 'password', serializer.validated_data['new_password']

+ 2 - 5
misago/users/api/userendpoints/username.py

@@ -37,8 +37,7 @@ def change_username(request):
         context={'user': request.user},
         context={'user': request.user},
     )
     )
 
 
-    if not serializer.is_valid():
-        return Response(serializer.errors, status=400)
+    serializer.is_valid(raise_exception=True)
 
 
     try:
     try:
         serializer.change_username(changed_by=request.user)
         serializer.change_username(changed_by=request.user)
@@ -62,9 +61,7 @@ def change_username(request):
 def moderate_username_endpoint(request, profile):
 def moderate_username_endpoint(request, profile):
     if request.method == 'POST':
     if request.method == 'POST':
         serializer = ChangeUsernameSerializer(data=request.data, context={'user': profile})
         serializer = ChangeUsernameSerializer(data=request.data, context={'user': profile})
-
-        if not serializer.is_valid():
-            return Response(serializer.errors, status=400)
+        serializer.is_valid(raise_exception=True)
 
 
         try:
         try:
             serializer.change_username(changed_by=request.user)
             serializer.change_username(changed_by=request.user)

+ 4 - 5
misago/users/api/users.py

@@ -104,11 +104,10 @@ class UserViewSet(viewsets.GenericViewSet):
         allow_self_only(request.user, pk, _("You can't change other users options."))
         allow_self_only(request.user, pk, _("You can't change other users options."))
 
 
         serializer = ForumOptionsSerializer(request.user, data=request.data)
         serializer = ForumOptionsSerializer(request.user, data=request.data)
-        if serializer.is_valid():
-            serializer.save()
-            return Response(status=204)
-        else:
-            return Response(serializer.errors, status=400)
+        serializer.is_valid(raise_exception=True)
+
+        serializer.save()
+        return Response(status=204)
 
 
     @detail_route(methods=['get', 'post'])
     @detail_route(methods=['get', 'post'])
     def username(self, request, pk=None):
     def username(self, request, pk=None):