from rest_framework.views import APIView from rest_framework.response import Response from rest_framework.permissions import IsAuthenticated # <-- Here import json from standards.models import Standards from rest_framework import serializers from .serializers import StandardsSerializer, ChatRoomSerializer, ChatRoomFullSerializer from rest_framework.decorators import api_view, permission_classes from rest_framework import status from rest_framework.authentication import SessionAuthentication, BasicAuthentication, TokenAuthentication from rest_framework.decorators import authentication_classes from chat.models import ChatRoom, ChatMessage class GetUserId(APIView): permission_classes = (IsAuthenticated,) # <-- And here def post(self, request): return Response({"userid" : self.request.user.pk}) @api_view(['POST', ]) @permission_classes((IsAuthenticated,)) def getStandardList(request): standards = Standards.objects.filter(agency=request.user.profile.agency) ser = StandardsSerializer(standards, many=True) return Response(ser.data, status=status.HTTP_200_OK) @api_view(['POST', ]) @permission_classes((IsAuthenticated,)) def getSingleStandard(request, pk): standard = Standards.objects.get(pk=int(pk)) ser = StandardsSerializer(standard, many=False) return Response(ser.data, status=status.HTTP_200_OK) @api_view(['POST', ]) @permission_classes((IsAuthenticated,)) def logoutByToken(request): print(request) request.user.auth_token.delete() return Response(status=status.HTTP_200_OK) @api_view(['POST', ]) @permission_classes((IsAuthenticated,)) def getchatrooms(request): chatrooms = ChatRoom.objects.filter(creator=request.user) | ChatRoom.objects.filter(chatmember_single=request.user) chatrooms_ser = ChatRoomSerializer(chatrooms, many=True) return Response(chatrooms_ser.data, status=status.HTTP_200_OK) @api_view(['POST', ]) @permission_classes((IsAuthenticated,)) def getsinglechat(request, pk): chatroom = ChatRoom.objects.get(pk=pk) if chatroom.creator == request.user or chatroom.chatmember_single == request.user or (request.user in chatroom.chatmembers.all()): chatroom_ser = ChatRoomFullSerializer(chatroom, many=False) return Response(chatroom_ser.data, status=status.HTTP_200_OK) else: return Response(status=status.HTTP_403_FORBIDDEN) @api_view(['POST', ]) @permission_classes((IsAuthenticated,)) def savenewchatmessage(request): room = ChatRoom.objects.get(pk=request.POST["room"]) if(request.user == room.creator or request.user == room.chatmember_single): newmessage = ChatMessage(room=room, author=request.user, content=request.POST["message"]) newmessage.save() room.messages.add(newmessage) room.save() return Response(status=status.HTTP_200_OK) else: return Response(status=status.HTTP_403_FORBIDDEN)