je respecte les conventions rest.

This commit is contained in:
Orabis 2024-10-18 17:55:42 +02:00
parent cb3a64ec43
commit 039ad74e94
3 changed files with 17 additions and 16 deletions

View File

@ -24,9 +24,11 @@ class UserSerializer(serializers.ModelSerializer):
class ProductSerializer(serializers.ModelSerializer):
user = serializers.PrimaryKeyRelatedField(read_only=True)
class Meta:
model = Product
fields = ["id", "name", "description", "quantity", "creation_date", "modification_date"]
fields = ["id", "name", "description", "quantity", "creation_date", "modification_date", "user"]
class AlerteSerializer(serializers.ModelSerializer):

View File

@ -8,13 +8,13 @@ from rest_framework_simplejwt.views import *
##juge pas les noms d'acces OK ?##
router = routers.DefaultRouter()
router.register(r'products', ProductView, basename='product')
urlpatterns = [
path('', include(router.urls)),
path('api/', include(router.urls)),
path('admin/', admin.site.urls),
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/users', CreateUser.as_view(), name="create-user"),
path('api/users/me/', UserInfo.as_view(), name="user-info"),
path('api/token/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
path('api/token/refresh', TokenRefreshView.as_view(), name="token_refresh")
]

View File

@ -16,10 +16,12 @@ class CreateUser(generics.CreateAPIView):
def create(self, request):
if request.user.is_authenticated:
return Response({"detail:" "Deconnecte toi ??"}, status=status.HTTP_403_FORBIDDEN)
return Response({"detail": ["Toujours connecté"]}, status=status.HTTP_403_FORBIDDEN)
if not request.data.get("email"):
return Response({"email": ["Saisissez une adresse e-mail valide."]}, status=status.HTTP_400_BAD_REQUEST)
serializers = self.get_serializer(data=request.data)
serializers.is_valid(raise_exception=True)
serializers.save()
user = serializers.save()
refresh = RefreshToken.for_user(user)
access_token = refresh.access_token
@ -39,22 +41,19 @@ class UserInfo(generics.ListAPIView):
return User.objects.filter(username=self.request.user)
class CreateProduct(generics.CreateAPIView):
class ProductView(viewsets.ModelViewSet):
permission_classes = [IsAuthenticated]
throttle_classes = [UserRateThrottle]
serializer_class = ProductSerializer
queryset = Product.objects.all()
def create(self, request):
def perform_create(self, request):
if not request.data.get("quantity"):
return Response({"quantity": ["give a quantity"]}, status=status.HTTP_400_BAD_REQUEST)
serializers = self.get_serializer(data=request.data)
serializers.is_valid(raise_exception=True)
serializers.save(user=request.user)
serializers.save(user=self.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)