def delete(self, request, pk):
     """ Delete existing Friend"""
     serializer = FriendshipRequestSerializer(data=request.data)
     if serializer.is_valid():
         try:
             Follow.objects.remove_follower(serializer['follower'], serializer['followee'])
             return Response(serializer.data, status=status.HTTP_201_CREATED)
         except:
             return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
 def post(self, request, pk):
     """ Giving friend request"""
     serializer = FriendshipRequestSerializer(data=request.data)
     if serializer.is_valid():
         try:
             Friend.objects.add_friend(serializer['from_user'], serializer['to_user'])
             return Response(serializer.data, status=status.HTTP_201_CREATED)
         except:
             return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
     return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
 def put(self, request, pk, format=None):
     """ approve or cancel the request"""
     friend_ship = self.get_object(pk)
     request_type = request.PUT.get('request')
     serializer = FriendshipRequestSerializer(friend_ship)
     if request_type == 'Accept':
         friend_ship.accept()
     else:
         friend_ship.reject()
     return Response(serializer.data)
 def get(self, request, pk, format=None):
     """ get the request detail"""
     friend_ship = self.get_object(pk)
     friend_ship.mark_viewed()
     serializer = FriendshipRequestSerializer(friend_ship)
     return Response(serializer.data)
def friendship_request_unread(request):
    friend_request_unread = Friend.objects.unread_requests(request.user)
    serializer = FriendshipRequestSerializer(friend_request_unread, many=True)
    return Response(serializer.data)
def friendship_request_receive(request):
    friend_request_receive = Friend.objects.requests(request.user)
    serializer = FriendshipRequestSerializer(friend_request_receive, many=True)
    return Response(serializer.data)
def friendship_request_sent(request):
    friend_request_sent = Friend.objects.sent_requests(request.user)
    serializer = FriendshipRequestSerializer(friend_request_sent, many=True)
    return Response(serializer.data)