72 lines
3.1 KiB
Python
72 lines
3.1 KiB
Python
from rest_framework import viewsets
|
|
from rest_framework.permissions import AllowAny
|
|
from drf_spectacular.utils import extend_schema, extend_schema_view
|
|
|
|
from .models import Category, Product, ProductImage, DiscountCode, Order, OrderItem, Carrier
|
|
from .serializers import (
|
|
CategorySerializer,
|
|
ProductSerializer,
|
|
ProductImageSerializer,
|
|
DiscountCodeSerializer,
|
|
OrderSerializer,
|
|
)
|
|
|
|
|
|
@extend_schema_view(
|
|
list=extend_schema(tags=["Commerce", "Categories"], summary="List categories"),
|
|
retrieve=extend_schema(tags=["Commerce", "Categories"], summary="Retrieve category"),
|
|
create=extend_schema(tags=["Commerce", "Categories"], summary="Create category"),
|
|
update=extend_schema(tags=["Commerce", "Categories"], summary="Update category"),
|
|
partial_update=extend_schema(tags=["Commerce", "Categories"], summary="Partial update category"),
|
|
destroy=extend_schema(tags=["Commerce", "Categories"], summary="Delete category"),
|
|
)
|
|
class CategoryViewSet(viewsets.ModelViewSet):
|
|
queryset = Category.objects.all()
|
|
serializer_class = CategorySerializer
|
|
permission_classes = [AllowAny]
|
|
|
|
|
|
@extend_schema_view(
|
|
list=extend_schema(tags=["Commerce", "Products"], summary="List products"),
|
|
retrieve=extend_schema(tags=["Commerce", "Products"], summary="Retrieve product"),
|
|
create=extend_schema(tags=["Commerce", "Products"], summary="Create product"),
|
|
update=extend_schema(tags=["Commerce", "Products"], summary="Update product"),
|
|
partial_update=extend_schema(tags=["Commerce", "Products"], summary="Partial update product"),
|
|
destroy=extend_schema(tags=["Commerce", "Products"], summary="Delete product"),
|
|
)
|
|
class ProductViewSet(viewsets.ModelViewSet):
|
|
queryset = Product.objects.all()
|
|
serializer_class = ProductSerializer
|
|
permission_classes = [AllowAny]
|
|
|
|
|
|
@extend_schema_view(
|
|
list=extend_schema(tags=["Commerce", "Discounts"], summary="List discount codes"),
|
|
retrieve=extend_schema(tags=["Commerce", "Discounts"], summary="Retrieve discount code"),
|
|
create=extend_schema(tags=["Commerce", "Discounts"], summary="Create discount code"),
|
|
update=extend_schema(tags=["Commerce", "Discounts"], summary="Update discount code"),
|
|
partial_update=extend_schema(tags=["Commerce", "Discounts"], summary="Partial update discount code"),
|
|
destroy=extend_schema(tags=["Commerce", "Discounts"], summary="Delete discount code"),
|
|
)
|
|
class DiscountCodeViewSet(viewsets.ModelViewSet):
|
|
queryset = DiscountCode.objects.all()
|
|
serializer_class = DiscountCodeSerializer
|
|
permission_classes = [AllowAny]
|
|
|
|
|
|
@extend_schema_view(
|
|
list=extend_schema(tags=["Commerce", "Orders"], summary="List orders"),
|
|
retrieve=extend_schema(tags=["Commerce", "Orders"], summary="Retrieve order"),
|
|
create=extend_schema(tags=["Commerce", "Orders"], summary="Create order"),
|
|
update=extend_schema(tags=["Commerce", "Orders"], summary="Update order"),
|
|
partial_update=extend_schema(tags=["Commerce", "Orders"], summary="Partial update order"),
|
|
destroy=extend_schema(tags=["Commerce", "Orders"], summary="Delete order"),
|
|
)
|
|
class OrderViewSet(viewsets.ModelViewSet):
|
|
queryset = Order.objects.all()
|
|
serializer_class = OrderSerializer
|
|
permission_classes = [AllowAny]
|
|
|
|
|
|
# TODO: CarrierViewSet & CarrierSerializer when requested
|