Features: 1) Automatically create a new Order if no pending Order exists for authenticated users;
Fixes: 1) Handle `Order.DoesNotExist` exception in `current` method of viewsets; Extra: 1) Minor improvement to user experience by ensuring an Order object is always returned.
This commit is contained in:
parent
c6f2029285
commit
4bce9224fc
1 changed files with 4 additions and 1 deletions
|
|
@ -806,7 +806,10 @@ class OrderViewSet(EvibesViewSet):
|
||||||
def current(self, request):
|
def current(self, request):
|
||||||
if not request.user.is_authenticated:
|
if not request.user.is_authenticated:
|
||||||
raise PermissionDenied(permission_denied_message)
|
raise PermissionDenied(permission_denied_message)
|
||||||
order = Order.objects.get(user=request.user, status="PENDING")
|
try:
|
||||||
|
order = Order.objects.get(user=request.user, status="PENDING")
|
||||||
|
except Order.DoesNotExist:
|
||||||
|
order = Order.objects.create(user=request.user)
|
||||||
return Response(
|
return Response(
|
||||||
status=status.HTTP_200_OK,
|
status=status.HTTP_200_OK,
|
||||||
data=OrderDetailSerializer(order).data,
|
data=OrderDetailSerializer(order).data,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue