je respecte les conventions rest.
This commit is contained in:
parent
cb3a64ec43
commit
039ad74e94
@ -24,9 +24,11 @@ class UserSerializer(serializers.ModelSerializer):
|
|||||||
|
|
||||||
|
|
||||||
class ProductSerializer(serializers.ModelSerializer):
|
class ProductSerializer(serializers.ModelSerializer):
|
||||||
|
user = serializers.PrimaryKeyRelatedField(read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Product
|
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):
|
class AlerteSerializer(serializers.ModelSerializer):
|
||||||
|
@ -8,13 +8,13 @@ from rest_framework_simplejwt.views import *
|
|||||||
##juge pas les noms d'acces OK ?##
|
##juge pas les noms d'acces OK ?##
|
||||||
|
|
||||||
router = routers.DefaultRouter()
|
router = routers.DefaultRouter()
|
||||||
|
router.register(r'products', ProductView, basename='product')
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('', include(router.urls)),
|
path('api/', include(router.urls)),
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
path('api/user/create/', CreateUser.as_view(), name="create-user"),
|
path('api/users', CreateUser.as_view(), name="create-user"),
|
||||||
path('api/user/info', UserInfo.as_view(), name="user-info"),
|
path('api/users/me/', 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/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
|
||||||
path('api/token/refresh', TokenRefreshView.as_view(), name="token_refresh")
|
path('api/token/refresh', TokenRefreshView.as_view(), name="token_refresh")
|
||||||
]
|
]
|
||||||
|
@ -16,10 +16,12 @@ class CreateUser(generics.CreateAPIView):
|
|||||||
|
|
||||||
def create(self, request):
|
def create(self, request):
|
||||||
if request.user.is_authenticated:
|
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 = self.get_serializer(data=request.data)
|
||||||
serializers.is_valid(raise_exception=True)
|
serializers.is_valid(raise_exception=True)
|
||||||
serializers.save()
|
user = serializers.save()
|
||||||
|
|
||||||
refresh = RefreshToken.for_user(user)
|
refresh = RefreshToken.for_user(user)
|
||||||
access_token = refresh.access_token
|
access_token = refresh.access_token
|
||||||
@ -39,22 +41,19 @@ class UserInfo(generics.ListAPIView):
|
|||||||
return User.objects.filter(username=self.request.user)
|
return User.objects.filter(username=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
class CreateProduct(generics.CreateAPIView):
|
class ProductView(viewsets.ModelViewSet):
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
throttle_classes = [UserRateThrottle]
|
throttle_classes = [UserRateThrottle]
|
||||||
serializer_class = ProductSerializer
|
serializer_class = ProductSerializer
|
||||||
queryset = Product.objects.all()
|
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 = self.get_serializer(data=request.data)
|
||||||
serializers.is_valid(raise_exception=True)
|
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)
|
return Response(serializers.data, status=status.HTTP_201_CREATED)
|
||||||
|
|
||||||
|
|
||||||
class ListProduct(generics.ListAPIView):
|
|
||||||
permission_classes = [IsAuthenticated]
|
|
||||||
serializer_class = ProductSerializer
|
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
return Product.objects.filter(user_id=self.request.user)
|
return Product.objects.filter(user_id=self.request.user)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user