cart item clear and apply discount view
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
from django.conf.urls.static import static
|
||||
from django.contrib import admin
|
||||
from django.urls import path, include
|
||||
from .views import CartItemViews, CartView, OrderlistView
|
||||
from .views import CartItemViews, CartView, OrderlistView, CartItemClear, ApplyDiscountView
|
||||
|
||||
urlpatterns = [
|
||||
path('list', OrderlistView.as_view(), name='order-list'),
|
||||
path('all', OrderlistView.as_view(), name='order-list'),
|
||||
path('cart', CartView.as_view()),
|
||||
path('cart/discount', ApplyDiscountView.as_view()),
|
||||
path('cart/all', CartItemClear.as_view()),
|
||||
path('cart/item/<int:pk>', CartItemViews.as_view(), name='change-item-cart'),
|
||||
# path('payment', CartView.as_view()),
|
||||
# path('', CartView.as_view()),
|
||||
|
||||
+31
-1
@@ -7,7 +7,7 @@ from rest_framework.permissions import IsAuthenticated
|
||||
from .serializers import *
|
||||
# from cart.models import
|
||||
from rest_framework import status
|
||||
from .models import OrderItemModel, OrderModel
|
||||
from .models import OrderItemModel, OrderModel, DiscountCode
|
||||
try:
|
||||
pass
|
||||
except DiscountNotAvailableError:
|
||||
@@ -24,6 +24,36 @@ pay
|
||||
|
||||
|
||||
|
||||
class ApplyDiscountView(APIView):
|
||||
serializer_class = DiscountCodeSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
def post(self, request):
|
||||
cart_order, created = OrderModel.objects.get_or_create(
|
||||
user=request.user,
|
||||
status='CART'
|
||||
)
|
||||
discount_code = get_object_or_404(DiscountCode, code=request.data.get('code'))
|
||||
|
||||
if not discount_code.is_valid():
|
||||
return Response({'detail': discount_code.not_valid_reason()}, status=status.HTTP_400_BAD_REQUEST)
|
||||
cart_order.discount_code = discount_code
|
||||
cart_order.save()
|
||||
return Response({'detail': 'کد تخفیف با موفقیت اعمال شد'}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
|
||||
class CartItemClear(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
serializer_class = OrderItemSerailzier
|
||||
def delete(self, request):
|
||||
cart_order, created = OrderModel.objects.get_or_create(
|
||||
user=request.user,
|
||||
status='CART'
|
||||
)
|
||||
cart_order.items.all().delete()
|
||||
return Response({'detail': f'سبد خرید با موفقیت خالی شد'}, status=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
|
||||
class CartItemViews(APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
serializer_class = OrderItemSerailzier
|
||||
|
||||
Reference in New Issue
Block a user