Fixes: 1) Fix OrderViewSet buy action.

Extra: 1) Minor code improvements.
This commit is contained in:
Egor Pavlovich Gorbunov 2025-06-03 21:20:48 +03:00
parent 18782a8bc0
commit b71cc2355e

View file

@ -260,8 +260,9 @@ class OrderViewSet(EvibesViewSet):
def buy(self, request, *_args, **kwargs):
serializer = BuyOrderSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
order_uuid = kwargs.get("pk")
try:
order = Order.objects.get(user=request.user, uuid=kwargs.get("order_uuid"))
order = Order.objects.get(user=request.user, uuid=order_uuid)
instance = order.buy(
force_balance=serializer.validated_data.get("force_balance"),
force_payment=serializer.validated_data.get("force_payment"),
@ -277,7 +278,7 @@ class OrderViewSet(EvibesViewSet):
case _:
raise TypeError(_(f"wrong type came from order.buy() method: {type(instance)!s}"))
except Order.DoesNotExist:
return Response(status=status.HTTP_404_NOT_FOUND)
return Response(status=status.HTTP_404_NOT_FOUND, data={"detail": _(f"order {order_uuid} not found")})
@action(detail=False, methods=["post"], url_path="buy_unregistered")
@ratelimit(key="ip", rate="2/h", block=True)
@ -299,7 +300,7 @@ class OrderViewSet(EvibesViewSet):
return Response(status=status.HTTP_202_ACCEPTED, data=TransactionProcessSerializer(transaction).data)
@action(detail=True, methods=["post"], url_path="add_order_product")
def add_order_product(self, request, *_args, **kwargs):
def add_order_product(self, request, **kwargs):
serializer = AddOrderProductSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
try:
@ -317,7 +318,7 @@ class OrderViewSet(EvibesViewSet):
return Response(status=status.HTTP_404_NOT_FOUND)
@action(detail=True, methods=["post"], url_path="remove_order_product")
def remove_order_product(self, request, *_args, **kwargs):
def remove_order_product(self, request, **kwargs):
serializer = RemoveOrderProductSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
try: