Beispiel #1
0
 def post(self, request):
     serializer = FriendRequestSerializer(data=request.data)
     if serializer.is_valid():
         if request.user.username != serializer.data['from_user']:
             return Response(serializer.data,
                             status=status.HTTP_401_UNAUTHORIZED)
         from_user = get_object_or_404(
             UserProfile, user__username=serializer.data['from_user'])
         to_user = get_object_or_404(
             UserProfile, user__username=serializer.data['to_user'])
         if to_user in from_user.friends.all() or from_user == to_user:
             return Response(serializer.data, status=status.HTTP_200_OK)
         try:
             friend_request = FriendRequest.objects.get(from_user=from_user,
                                                        to_user=to_user)
         except FriendRequest.DoesNotExist:
             try:
                 friend_request = FriendRequest.objects.get(
                     from_user=to_user, to_user=from_user)
             except FriendRequest.DoesNotExist:
                 friend_request = FriendRequest(from_user=from_user,
                                                to_user=to_user)
                 friend_request.save()
         serializer_out = FriendRequestSerializer(friend_request)
         return Response(serializer_out.data,
                         status=status.HTTP_201_CREATED)
Beispiel #2
0
 def post(self, request, format=None):
     serializer = FriendRequestSerializer(data=request.data)
     if serializer.is_valid():
         if request.user.username != serializer.data['to_user']:
             return Response({"Error": "Permission denied"},
                             status=status.HTTP_401_UNAUTHORIZED)
         from_user = get_object_or_404(
             UserProfile, user__username=serializer.data['from_user'])
         to_user = get_object_or_404(
             UserProfile, user__username=serializer.data['to_user'])
         friend_request = get_object_or_404(FriendRequest,
                                            from_user=from_user,
                                            to_user=to_user)
         if serializer.data['action'] == "accept":
             from_user.last_change = timezone.now()
             to_user.last_change = timezone.now()
             from_user.save()
             to_user.save()
             friend_request.accept()
         elif serializer.data['action'] == "refuse":
             friend_request.refuse()
         return Response(serializer.data, status=status.HTTP_201_CREATED)
Beispiel #3
0
 def get(self, request, format=None):
     queryset = self.get_queryset()
     serializer = FriendRequestSerializer(queryset, many=True)
     return Response(serializer.data, status=status.HTTP_200_OK)