diff --git a/ecommerce/customers/serializers.py b/ecommerce/customers/serializers.py index ffad735..2edf8ad 100644 --- a/ecommerce/customers/serializers.py +++ b/ecommerce/customers/serializers.py @@ -18,6 +18,11 @@ class ProfileSerializer(serializers.ModelSerializer): class Meta: model = Customer fields = ("first_name", "last_name", "email") +class RegisterSerializer(serializers.ModelSerializer): + + class Meta: + model = Customer + fields =("id", "first_name", "last_name", "email", "is_staff", "is_active", "date_joined") class CountrySerializer(serializers.ModelSerializer): diff --git a/ecommerce/customers/views.py b/ecommerce/customers/views.py index e2d05b6..7d67879 100644 --- a/ecommerce/customers/views.py +++ b/ecommerce/customers/views.py @@ -30,6 +30,10 @@ def get_object(self): filter_kwargs = {"id": self.request.user.id} obj = get_object_or_404(queryset, **filter_kwargs) return obj +class RegisterViewSet(mixins.CreateModelMixin,GenericViewSet ): + queryset = Customer.objects.all() + serializer_class = ProfileSerializer + class CountryViewSet(viewsets.ModelViewSet): diff --git a/ecommerce/ecommerce/urls.py b/ecommerce/ecommerce/urls.py index 28278ef..28b3bf8 100644 --- a/ecommerce/ecommerce/urls.py +++ b/ecommerce/ecommerce/urls.py @@ -21,13 +21,13 @@ from baskets.views import BasketItemViewSet, BasketViewSet from core.views import APITokenObtainPairView from customers.views import AddressViewSet, CityViewSet, \ - CountryViewSet, AdminCustomerViewSet, MyProfileViewSet + CountryViewSet, AdminCustomerViewSet, MyProfileViewSet, RegisterViewSet from ecommerce.router import router from orders.views import OrderItemViewSet, OrderViewSet, BillingAddressViewSet, ShippingAddressViewSet, \ OrderBankAccountViewSet from payments.views import BankAccountViewSet, BankViewSet from products.views import ProductViewSet, CategoryViewSet, AdminProductViewSet, \ - PriceViewSet + PriceViewSet, ProductCreateViewSet router.register("products", ProductViewSet) router.register("prices", PriceViewSet) @@ -46,7 +46,8 @@ router.register("banks", BankViewSet) router.register("admin-products", AdminProductViewSet, basename="admin-product") router.register("admin-customers", AdminCustomerViewSet, basename="admin-customer") - +router.register("register", RegisterViewSet) +router.register("product-create",ProductCreateViewSet, basename= "Product-Create" ) urlpatterns = [ path("api/", include(router.urls)), diff --git a/ecommerce/products/serializers.py b/ecommerce/products/serializers.py index 0ba1f73..2d3accb 100644 --- a/ecommerce/products/serializers.py +++ b/ecommerce/products/serializers.py @@ -23,6 +23,11 @@ class Meta: model = Price fields = ("id", "product", "amount") +class ProductCreateSerializer(serializers.ModelSerializer): + + class Meta: + model = Product + fields = ("id", "sku", "name", "description", "color", "size", "categories", "created_at", "modified_at", "price") class ProductDetailedSerializer(serializers.ModelSerializer): categories = CategorySerializer(many=True) diff --git a/ecommerce/products/views.py b/ecommerce/products/views.py index 4f75c73..5e36e4e 100644 --- a/ecommerce/products/views.py +++ b/ecommerce/products/views.py @@ -20,7 +20,13 @@ class ProductViewSet(DetailedViewSetMixin, "detailed_list": ProductDetailedSerializer, "detailed": ProductDetailedSerializer, } - +class ProductCreateViewSet(viewsets.ModelViewSet): + queryset = Product.objects.all() + serializer_class = ProductSerializer + serializer_action_classes = { + "detailed_list": ProductDetailedSerializer, + "detailed": ProductDetailedSerializer, + } class AdminProductViewSet(DetailedViewSetMixin, viewsets.ModelViewSet): permission_classes = ( @@ -37,6 +43,7 @@ class AdminProductViewSet(DetailedViewSetMixin, viewsets.ModelViewSet): class CategoryViewSet(viewsets.ModelViewSet): + permission_classes = () http_method_names = ["get"] queryset = Category.objects.all() serializer_class = CategorySerializer