class userinfo, createproduct, listproduct created

This commit is contained in:
Orabis 2024-10-18 15:07:11 +02:00
parent 3c18c74280
commit cb3a64ec43
3 changed files with 37 additions and 3 deletions

View File

@ -1,4 +1,5 @@
from django.db import models
from django.contrib.auth.models import User
class Product(models.Model):
@ -7,6 +8,7 @@ class Product(models.Model):
quantity = models.IntegerField(null=False, default=0, blank=False)
creation_date = models.DateTimeField(auto_now_add=True)
modification_date = models.DateTimeField(auto_now=True)
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name="products")
def __str__(self):
return self.name

View File

@ -11,7 +11,10 @@ router = routers.DefaultRouter()
urlpatterns = [
path('', include(router.urls)),
path('admin/', admin.site.urls),
path('create/', UserCreate.as_view(), name="user-create"),
path('api/user/create/', CreateUser.as_view(), name="create-user"),
path('api/user/info', UserInfo.as_view(), name="user-info"),
path('api/product/create/', CreateProduct.as_view(), name="create-product"),
path('api/product/list/', ListProduct.as_view(), name="list-product"),
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh', TokenRefreshView.as_view(), name="token_refresh")
]

View File

@ -8,7 +8,7 @@ from rest_framework.permissions import IsAuthenticated, AllowAny
from rest_framework_simplejwt.tokens import RefreshToken
class UserCreate(generics.CreateAPIView):
class CreateUser(generics.CreateAPIView):
permission_classes = [AllowAny]
throttle_classes = [UserRateThrottle]
serializer_class = UserSerializer
@ -19,7 +19,7 @@ class UserCreate(generics.CreateAPIView):
return Response({"detail:" "Deconnecte toi ??"}, status=status.HTTP_403_FORBIDDEN)
serializers = self.get_serializer(data=request.data)
serializers.is_valid(raise_exception=True)
user = serializers.save()
serializers.save()
refresh = RefreshToken.for_user(user)
access_token = refresh.access_token
@ -29,3 +29,32 @@ class UserCreate(generics.CreateAPIView):
"refresh": str(refresh),
"access": str(access_token)
}, status=status.HTTP_201_CREATED)
class UserInfo(generics.ListAPIView):
permission_classes = [IsAuthenticated]
serializer_class = UserSerializer
def get_queryset(self):
return User.objects.filter(username=self.request.user)
class CreateProduct(generics.CreateAPIView):
permission_classes = [IsAuthenticated]
throttle_classes = [UserRateThrottle]
serializer_class = ProductSerializer
queryset = Product.objects.all()
def create(self, request):
serializers = self.get_serializer(data=request.data)
serializers.is_valid(raise_exception=True)
serializers.save(user=request.user)
return Response(serializers.data, status=status.HTTP_201_CREATED)
class ListProduct(generics.ListAPIView):
permission_classes = [IsAuthenticated]
serializer_class = ProductSerializer
def get_queryset(self):
return Product.objects.filter(user_id=self.request.user)