diff --git a/core/apps/wherehouse/urls.py b/core/apps/wherehouse/urls.py index 12940c8..ca5c75c 100644 --- a/core/apps/wherehouse/urls.py +++ b/core/apps/wherehouse/urls.py @@ -25,6 +25,7 @@ urlpatterns = [ path('create/', invalid_product_views.InvalidProductCreateApiView.as_view()), path('list/', invalid_product_views.InvalidProductListApiView.as_view()), path('/update/', invalid_product_views.InvalidProductUpdateApiView.as_view()), + path('/delete/', invalid_product_views.InvalidProductDeleteApiView.as_view()), ] )), ] diff --git a/core/apps/wherehouse/views/invalid_product.py b/core/apps/wherehouse/views/invalid_product.py index f15987c..d041e1a 100644 --- a/core/apps/wherehouse/views/invalid_product.py +++ b/core/apps/wherehouse/views/invalid_product.py @@ -1,6 +1,6 @@ from django.shortcuts import get_object_or_404 -from rest_framework import generics, parsers +from rest_framework import generics, parsers, views from rest_framework.response import Response from core.apps.accounts.permissions.permissions import HasRolePermission @@ -66,4 +66,20 @@ class InvalidProductUpdateApiView(generics.GenericAPIView): return Response( {'success': False, 'error_message': serializer.errors}, status=400 - ) \ No newline at end of file + ) + + +class InvalidProductDeleteApiView(views.APIView): + permission_classes = [HasRolePermission] + required_permissions = [] + + def delete(self, request, id): + invalid_product = get_object_or_404(InvalidProduct, id=id) + invalid_product.inventory.is_invalid = False + invalid_product.inventory.quantity += invalid_product.amount + invalid_product.inventory.save() + invalid_product.delete() + return Response( + {'success': True, 'message': 'invalid product deleted!'}, + status=204 + )