From eadaa66a3d37b1f5ef259ddebabdda9d4d112f12 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Mon, 12 Feb 2024 14:10:25 -0400 Subject: [PATCH] feat: raise an exceptions on validation errors --- program/views.py | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/program/views.py b/program/views.py index 23f96a8a..ffb7119a 100644 --- a/program/views.py +++ b/program/views.py @@ -282,12 +282,10 @@ class APIUserViewSet( data=request.data, ) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - @extend_schema_view( create=extend_schema(summary="Create a new image."), @@ -320,12 +318,10 @@ class APIImageViewSet(viewsets.ModelViewSet): data=request.data, ) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - def update(self, request, *args, **kwargs): """Update an Image instance. Only the creator can update an image.""" @@ -336,12 +332,10 @@ class APIImageViewSet(viewsets.ModelViewSet): data=request.data, ) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - def destroy(self, request, *args, **kwargs): """Destroy an Image instance. Only the owner can delete an image.""" @@ -388,12 +382,10 @@ class APIShowViewSet(DisabledObjectPermissionCheckMixin, viewsets.ModelViewSet): data=request.data, ) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - def update(self, request, *args, **kwargs): partial = kwargs.get("partial", False) show = self.get_object() @@ -405,12 +397,10 @@ class APIShowViewSet(DisabledObjectPermissionCheckMixin, viewsets.ModelViewSet): partial=partial, ) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - def partial_update(self, request, *args, **kwargs): kwargs["partial"] = True return self.update(request, *args, **kwargs) @@ -660,7 +650,7 @@ class APITimeSlotViewSet( show_pk = get_values(self.kwargs, "show_pk") timeslot = self.get_object() serializer = TimeSlotSerializer(timeslot, data=request.data) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() # Return the next repetition @@ -675,8 +665,6 @@ class APITimeSlotViewSet( # ...or nothing if there isn't one return Response(serializer.data, status=status.HTTP_200_OK) - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) - @extend_schema_view( create=extend_schema(summary="Create a new note."), @@ -848,11 +836,9 @@ class APIHostViewSet(ActiveFilterMixin, viewsets.ModelViewSet): context={"request": request}, # the serializer needs the request in the context data=request.data, ) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) - else: - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) def update(self, request, *args, **kwargs): partial = kwargs.get("partial", False) @@ -866,11 +852,9 @@ class APIHostViewSet(ActiveFilterMixin, viewsets.ModelViewSet): partial=partial, ) - if serializer.is_valid(): + if serializer.is_valid(raise_exception=True): serializer.save() return Response(serializer.data, status=status.HTTP_200_OK) - else: - return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) def partial_update(self, request, *args, **kwargs): kwargs["partial"] = True -- GitLab