add block option
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import ProfileModel
|
||||
from .models import ProfileModel, BlockModel
|
||||
|
||||
# Register your models here.
|
||||
admin.site.register(ProfileModel)
|
||||
admin.site.register(ProfileModel)
|
||||
admin.site.register(BlockModel)
|
||||
|
@ -9,5 +9,7 @@ urlpatterns = [
|
||||
path("me", viewsets.MyProfileViewSet.as_view({'patch': 'partial_update', 'get': 'retrieve'}), name="my_profile_page"),
|
||||
path("<int:pk>", viewsets.ProfileViewSet.as_view({'get': 'retrieve'}), name="profile_page"),
|
||||
path("", viewsets.ProfileViewSet.as_view({'get': 'list'}), name="profiles_list"),
|
||||
path("block", views.BlockView.as_view(), name="block_page"),
|
||||
path("block", views.BlocksView.as_view(), name="block_page"),
|
||||
path("block/<int:pk>", views.BlockView.as_view(), name="block_page"),
|
||||
|
||||
] + static("/static/avatars/", document_root="./avatars")
|
||||
|
@ -2,17 +2,65 @@ from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import authentication, permissions, status
|
||||
from rest_framework.authentication import SessionAuthentication
|
||||
from rest_framework.renderers import JSONRenderer
|
||||
from django.core import serializers
|
||||
from .models import BlockModel
|
||||
|
||||
class BlockView(APIView):
|
||||
permission_classes = (permissions.IsAuthenticated,)
|
||||
authentication_classes = (SessionAuthentication,)
|
||||
|
||||
def post(self, request, pk):
|
||||
pass
|
||||
|
||||
def get(self, request, pk):
|
||||
pass
|
||||
block = BlockModel.objects.filter(pk=pk)
|
||||
if (block):
|
||||
return Response(serializers.serialize("json", block), status=status.HTTP_200_OK)
|
||||
else:
|
||||
return Response("Not Found", status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def delete(self, request, pk):
|
||||
pass
|
||||
|
||||
class BlocksView(APIView):
|
||||
permission_classes = (permissions.IsAuthenticated,)
|
||||
authentication_classes = (SessionAuthentication,)
|
||||
|
||||
def get(self, request):
|
||||
blocks = BlockModel.objects.filter(blocker=request.user.pk)
|
||||
if (blocks):
|
||||
return Response(serializers.serialize("json", BlockModel.objects.filter(blocker=request.user.pk)), status=status.HTTP_200_OK)
|
||||
else:
|
||||
return Response({}, status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
def post(self, request):
|
||||
data: dict = request.data
|
||||
users_id = request.data.get("users_id", None)
|
||||
|
||||
if (users_id == None):
|
||||
return Response({"Error"}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
if (BlockModel.objects.filter(blocker=users_id[0], blocked=users_id[1])):
|
||||
return Response({"Already Exist"}, status=status.HTTP_409_CONFLICT)
|
||||
|
||||
new_block = BlockModel()
|
||||
new_block.blocker = users_id[0]
|
||||
new_block.blocked = users_id[1]
|
||||
new_block.save()
|
||||
|
||||
return Response({"block_id": new_block.pk}, status=status.HTTP_201_CREATED)
|
||||
|
||||
def delete(self, request):
|
||||
data: dict = request.data
|
||||
users_id = request.data.get("users_id", None)
|
||||
|
||||
if (users_id == None):
|
||||
return Response({"Error"}, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
block = BlockModel.objects.filter(blocker=users_id[0], blocked=users_id[1])
|
||||
|
||||
print(list(block))
|
||||
if (block.count() > 1):
|
||||
return Response("Not normal >:[", status=status.HTTP_500_INTERNAL_SERVER_ERROR)
|
||||
|
||||
if (not block):
|
||||
return Response("Don't exist", status=status.HTTP_404_NOT_FOUND)
|
||||
|
||||
block.delete()
|
||||
return Response("Deleted", status=status.HTTP_200_OK)
|
||||
|
Reference in New Issue
Block a user