added delete route
This commit is contained in:
parent
3f95ee9db8
commit
5d34332ba4
@ -14,14 +14,14 @@ Including another URLconf
|
|||||||
1. Import the include() function: from django.urls import include, path
|
1. Import the include() function: from django.urls import include, path
|
||||||
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
|
||||||
"""
|
"""
|
||||||
|
from django.conf.urls.static import static
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
|
from rest_framework_simplejwt.views import TokenObtainPairView, TokenRefreshView
|
||||||
|
|
||||||
from api import settings
|
from api import settings
|
||||||
from books import views
|
from books import views
|
||||||
from books.views import UserProfileView, BookListCreateView
|
from books.views import UserProfileView, BookListCreateView, BookDetailView
|
||||||
from django.conf.urls.static import static
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('admin/', admin.site.urls),
|
path('admin/', admin.site.urls),
|
||||||
@ -29,8 +29,8 @@ urlpatterns = [
|
|||||||
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
path('api/token/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
|
||||||
path('api/profile', UserProfileView.as_view(), name='user_profile'),
|
path('api/profile', UserProfileView.as_view(), name='user_profile'),
|
||||||
path('api/books', BookListCreateView.as_view(), name='book_list_create'),
|
path('api/books', BookListCreateView.as_view(), name='book_list_create'),
|
||||||
|
path('api/books/<int:book_id>/', BookDetailView.as_view(), name='book-detail'),
|
||||||
path('api/users/<int:user_id>', views.find_user_by_id, name='user-detail'),
|
path('api/users/<int:user_id>', views.find_user_by_id, name='user-detail'),
|
||||||
]
|
]
|
||||||
|
|
||||||
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
|
||||||
|
|
||||||
|
|||||||
@ -25,6 +25,27 @@ class BookListCreateView(APIView):
|
|||||||
|
|
||||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
def delete(self, request, book_id):
|
||||||
|
try:
|
||||||
|
book = Book.objects.get(id=book_id)
|
||||||
|
book.delete()
|
||||||
|
return Response(status=status.HTTP_200_OK)
|
||||||
|
except Book.DoesNotExist:
|
||||||
|
return Response({"message": "Ce livre n'existe pas"}, status=status.HTTP_404_NOT_FOUND)
|
||||||
|
|
||||||
|
|
||||||
|
class BookDetailView(APIView):
|
||||||
|
permission_classes = [IsAuthenticatedOrReadOnly]
|
||||||
|
|
||||||
|
def delete(self, request, book_id):
|
||||||
|
try:
|
||||||
|
book = Book.objects.get(id=book_id)
|
||||||
|
book.delete()
|
||||||
|
return Response(status=status.HTTP_204_NO_CONTENT)
|
||||||
|
except Book.DoesNotExist:
|
||||||
|
return Response({"message": "Ce livre n'existe pas"}, status=status.HTTP_404_NOT_FOUND)
|
||||||
|
|
||||||
|
|
||||||
@api_view(['GET'])
|
@api_view(['GET'])
|
||||||
def find_user_by_id(request, user_id):
|
def find_user_by_id(request, user_id):
|
||||||
try:
|
try:
|
||||||
@ -32,6 +53,7 @@ def find_user_by_id(request, user_id):
|
|||||||
books_queryset = Book.objects.filter(user=user)
|
books_queryset = Book.objects.filter(user=user)
|
||||||
books_serializer = BookSerializer(books_queryset, many=True)
|
books_serializer = BookSerializer(books_queryset, many=True)
|
||||||
return Response({
|
return Response({
|
||||||
|
'id': user.id,
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'first_name': user.first_name,
|
'first_name': user.first_name,
|
||||||
'last_name': user.last_name,
|
'last_name': user.last_name,
|
||||||
@ -51,6 +73,7 @@ class UserProfileView(APIView):
|
|||||||
books_queryset = Book.objects.filter(user=user)
|
books_queryset = Book.objects.filter(user=user)
|
||||||
books_serializer = BookSerializer(books_queryset, many=True)
|
books_serializer = BookSerializer(books_queryset, many=True)
|
||||||
return Response({
|
return Response({
|
||||||
|
'id': user.id,
|
||||||
'username': user.username,
|
'username': user.username,
|
||||||
'first_name': user.first_name,
|
'first_name': user.first_name,
|
||||||
'last_name': user.last_name,
|
'last_name': user.last_name,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user