feat: added creation endpoints

This commit is contained in:
2024-03-25 00:23:03 +01:00
parent 6b04fe7e23
commit 43338ceeec
16 changed files with 287 additions and 97 deletions
View File
View File
+22
View File
@@ -0,0 +1,22 @@
from rest_framework.routers import DefaultRouter
from shop.api.v1.viewsets import (
TaxViewSet,
CustomerViewSet,
ProductViewSet,
ProductPriceViewSet,
OrderViewSet,
OrderLineViewSet,
)
router = DefaultRouter()
router.register("taxes", TaxViewSet)
router.register("customers", CustomerViewSet)
router.register("product", ProductViewSet)
router.register("product-prices", ProductPriceViewSet)
router.register("orders", OrderViewSet)
router.register("orders/(?P<order_id>[^/.]+)/lines", OrderLineViewSet)
urlpatterns = router.urls
+99
View File
@@ -0,0 +1,99 @@
from rest_framework import serializers
from shop.models import Product, ProductPrice, Customer, Tax, OrderLine, Order
class ProductSerializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = (
"name",
"description",
"stock",
"unit",
)
class ProductPriceSerializer(serializers.ModelSerializer):
class Meta:
model = ProductPrice
fields = (
"price",
"date",
"product",
)
class CustomerSerializer(serializers.ModelSerializer):
class Meta:
model = Customer
fields = (
"vat_id",
"first_name",
"last_name",
"email",
"address",
"city",
"state",
"country",
"zip",
)
class TaxSerializer(serializers.ModelSerializer):
class Meta:
model = Tax
fields = (
"code",
"value",
)
class OrderSerializer(serializers.ModelSerializer):
class Meta:
model = Order
fields = (
"uuid",
"creation_date",
"last_modification_date",
"base_total",
"total",
"customer",
"billing_address",
"billing_city",
"billing_state",
"billing_country",
"billing_zip",
"shipping_address",
"shipping_city",
"shipping_state",
"shipping_country",
"shipping_zip",
"contact_phone",
)
read_only_fields = (
"uuid",
"base_total",
"total",
)
class OrderLineSerializer(serializers.ModelSerializer):
class Meta:
model = OrderLine
fields = (
"product",
"quantity",
"order",
"price",
"base_total",
"total",
"taxes",
"tax_value",
)
read_only_fields = (
"price",
"base_total",
"total",
"taxes",
"tax_value",
)
+45
View File
@@ -0,0 +1,45 @@
from rest_framework.viewsets import ModelViewSet
from shop.api.v1.serializers import (
ProductSerializer,
ProductPriceSerializer,
CustomerSerializer,
TaxSerializer,
OrderSerializer,
OrderLineSerializer,
)
from shop.models import Product, ProductPrice, Customer, Tax, Order, OrderLine
class ProductViewSet(ModelViewSet):
serializer_class = ProductSerializer
queryset = Product.objects.all()
class ProductPriceViewSet(ModelViewSet):
serializer_class = ProductPriceSerializer
queryset = ProductPrice.objects.all()
class CustomerViewSet(ModelViewSet):
serializer_class = CustomerSerializer
queryset = Customer.objects.all()
class TaxViewSet(ModelViewSet):
serializer_class = TaxSerializer
queryset = Tax.objects.all()
class OrderViewSet(ModelViewSet):
serializer_class = OrderSerializer
queryset = Order.objects.all()
lookup_field = "uuid"
class OrderLineViewSet(ModelViewSet):
serializer_class = OrderLineSerializer
queryset = OrderLine.objects.all()
def get_queryset(self):
return super().get_queryset().filter(order_id=self.kwargs.get("order_id"))