Skip to content

Commit a8592f7

Browse files
committed
products: Add route to delete product images.
1 parent d049168 commit a8592f7

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed

products/serializers.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class Meta:
7676
fields = ['product', 'image', 'mini_description']
7777

7878

79-
class ProductImageCreateSerializer(serializers.ModelSerializer):
79+
class ProductImageCRUDSerializer(serializers.ModelSerializer):
8080
class Meta:
8181
model = ProductImage
8282
fields = '__all__'

products/urls.py

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
SubCategoryCreateView,
55
ProductCreateView,
66
ProductImageCreateView,
7+
ProductImageDeleteView,
78
CategoryUpdateDeleteView,
89
SubCategoryUpdateDeleteView,
910
PopularProductListView,
@@ -23,6 +24,7 @@
2324
urlpatterns = [
2425
path('create/product/', ProductCreateView.as_view()),
2526
path('create/product/add_image/', ProductImageCreateView.as_view()),
27+
path('delete/product/delete_image/<pi_id>/', ProductImageDeleteView.as_view()),
2628
path('create/category/', CategoryCreateView.as_view()),
2729
path('create/subcategory/', SubCategoryCreateView.as_view()),
2830
path('modify/category/<category>/', CategoryUpdateDeleteView.as_view()),

products/views.py

+23-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
ProductSerializer,
1212
ParticularProductSerializer,
1313
ProductImageSerializer,
14-
ProductImageCreateSerializer,
14+
ProductImageCRUDSerializer,
1515
ReviewRatingSerializer,
1616
ReviewRatingCreateSerializer
1717
)
@@ -54,10 +54,31 @@ def create(self, request, *args, **kwargs):
5454
class ProductImageCreateView(CreateAPIView):
5555
queryset = ProductImage.objects.all()
5656
permission_classes = [IsAuthenticated, IsArtist]
57-
serializer_class = ProductImageCreateSerializer
57+
serializer_class = ProductImageCRUDSerializer
5858
parser_classes = [FormParser, MultiPartParser]
5959

6060

61+
class ProductImageDeleteView(APIView):
62+
permission_classes = [IsAuthenticated, IsArtist]
63+
serializer_class = ProductImageCRUDSerializer
64+
parser_classes = [JSONParser]
65+
66+
def delete(self, request, pi_id):
67+
user = request.user.id
68+
try:
69+
obj = ProductImage.objects.get(id=pi_id, product__artist=user)
70+
obj.delete()
71+
return Response({
72+
'status': 'success',
73+
'details': 'Successfully deleted product image.'
74+
}, status=200)
75+
except:
76+
return Response({
77+
'status': 'error',
78+
'details': 'Error in deleting product image.'
79+
}, status=400)
80+
81+
6182
class CategoryUpdateDeleteView(RetrieveUpdateDestroyAPIView):
6283
serializer_class = CategorySerializer
6384
parser_classes = [JSONParser]

0 commit comments

Comments
 (0)