Skip to content
Snippets Groups Projects
Verified Commit 38bc37e5 authored by Ernesto Rico Schmidt's avatar Ernesto Rico Schmidt
Browse files

feat: catch integrity errors and return an error code and message

Closes: #188
parent b1e797a8
Branches
Tags
No related merge requests found
Pipeline #7410 passed
......@@ -34,6 +34,7 @@ from rest_framework.response import Response
from django.conf import settings
from django.contrib.auth.models import User
from django.db import IntegrityError
from django.http import Http404, HttpResponse, JsonResponse
from django.shortcuts import get_object_or_404
from django.utils import timezone
......@@ -383,7 +384,15 @@ class APIShowViewSet(DisabledObjectPermissionCheckMixin, viewsets.ModelViewSet):
)
if serializer.is_valid(raise_exception=True):
serializer.save()
try:
serializer.save()
except IntegrityError:
data = {
"slug": {"code": "unique", "message": "show with this slug already exists."}
}
return Response(data, status=status.HTTP_400_BAD_REQUEST)
return Response(serializer.data, status=status.HTTP_201_CREATED)
def update(self, request, *args, **kwargs):
......@@ -398,8 +407,15 @@ class APIShowViewSet(DisabledObjectPermissionCheckMixin, viewsets.ModelViewSet):
)
if serializer.is_valid(raise_exception=True):
serializer.save()
return Response(serializer.data)
try:
serializer.save()
return Response(serializer.data)
except IntegrityError:
data = {
"slug": {"code": "unique", "message": "show with this slug already exists."}
}
return Response(data, status=status.HTTP_400_BAD_REQUEST)
def partial_update(self, request, *args, **kwargs):
kwargs["partial"] = True
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment