def create (self, request, pk, fpk) : try : # Get Users me = User.objects.get(login=pk) newFriend = User.objects.get(login=fpk) # Check if users are already friends for actualFriend in me.friends.all() : if (actualFriend == newFriend) : # Users are already friends return Response('ERROR: Users are already friends') try : inverseRequestExists = FriendRequest.objects.get(fromUser=newFriend, toUser=me) # Friend has already sent request # Delete friend request and add friends inverseRequestExists.delete() f1 = Friendship(firstUser=me, secondUser=newFriend) f1.save() f2 = Friendship(firstUser=newFriend, secondUser=me) f2.save() serializer = FriendshipSerializer(f1) return Response(serializer.data) except exceptions.ObjectDoesNotExist : # No inverse relationship exists # We will search for an existing request from sender try : exists = FriendRequest.objects.get(fromUser=me, toUser=newFriend) # Already has sent request return Response('ERROR: Already sent request') except exceptions.ObjectDoesNotExist : # Haven't sent request request = FriendRequest(fromUser=me, toUser=newFriend) request.save() serializer = FriendRequestSerializer(request) return Response(serializer.data) except exceptions.MultipleObjectsReturned : # Many requests from me to same friend return Response('ERROR: # Many requests from me to same friend') except exceptions.MultipleObjectsReturned : # Many inverse relations have been sent return Response('ERROR: # Many inverse relations have been sent') except exceptions.ObjectDoesNotExist : # No users found return Response('ERROR: # No users found') except exceptions.MultipleObjectsReturned : # Multiple users found for same login return Response('ERROR: # Multiple users found for same login')
def befriend(request): f = Friendship(from_user=request.user, to_user=User.objects.get(pk=request.POST.get('other_id'))) f.save() return redirect('cards:user_friends_list')
def create(self, request, pk, fpk): try: # Get Users me = User.objects.get(login=pk) newFriend = User.objects.get(login=fpk) # Check if users are already friends for actualFriend in me.friends.all(): if (actualFriend == newFriend): # Users are already friends return Response('ERROR: Users are already friends') try: inverseRequestExists = FriendRequest.objects.get( fromUser=newFriend, toUser=me) # Friend has already sent request # Delete friend request and add friends inverseRequestExists.delete() f1 = Friendship(firstUser=me, secondUser=newFriend) f1.save() f2 = Friendship(firstUser=newFriend, secondUser=me) f2.save() serializer = FriendshipSerializer(f1) return Response(serializer.data) except exceptions.ObjectDoesNotExist: # No inverse relationship exists # We will search for an existing request from sender try: exists = FriendRequest.objects.get(fromUser=me, toUser=newFriend) # Already has sent request return Response('ERROR: Already sent request') except exceptions.ObjectDoesNotExist: # Haven't sent request request = FriendRequest(fromUser=me, toUser=newFriend) request.save() serializer = FriendRequestSerializer(request) return Response(serializer.data) except exceptions.MultipleObjectsReturned: # Many requests from me to same friend return Response( 'ERROR: # Many requests from me to same friend') except exceptions.MultipleObjectsReturned: # Many inverse relations have been sent return Response( 'ERROR: # Many inverse relations have been sent') except exceptions.ObjectDoesNotExist: # No users found return Response('ERROR: # No users found') except exceptions.MultipleObjectsReturned: # Multiple users found for same login return Response('ERROR: # Multiple users found for same login')