80 lines
2.6 KiB
Python
80 lines
2.6 KiB
Python
from app.models.friend_relationship import FriendRelationship
|
|
from app.models.friend_request import FriendRequest
|
|
from app.models.user import User
|
|
from app.extensions import db
|
|
from app.util import auth
|
|
|
|
"""
|
|
DEPRECATED
|
|
Everything should be moved to app/services/user_relationships/friends.py
|
|
"""
|
|
|
|
def GetFriends( userId : int ) -> list[User]:
|
|
"""
|
|
Returns a list of friends for the user
|
|
|
|
:param userId: The user's id
|
|
|
|
:return: A list of friends for the user
|
|
"""
|
|
friends : list[FriendRelationship] = FriendRelationship.query.filter((FriendRelationship.user_id == userId) | (FriendRelationship.friend_id == userId)).all()
|
|
if friends is None:
|
|
return []
|
|
|
|
friendList = []
|
|
for friend in friends:
|
|
OtherUserId = friend.user_id if friend.user_id != userId else friend.friend_id
|
|
OtherUser = User.query.filter_by(id=OtherUserId).first()
|
|
if OtherUser is None:
|
|
continue
|
|
if OtherUser in friendList:
|
|
# This should never happen, but just in case
|
|
db.session.delete(friend)
|
|
db.session.commit()
|
|
continue
|
|
|
|
friendList.append(OtherUser)
|
|
|
|
return friendList
|
|
|
|
def GetFriendRelationship(userId, otherUserId):
|
|
friends = FriendRelationship.query.filter((FriendRelationship.user_id == userId) | (FriendRelationship.friend_id == userId)).all()
|
|
if friends is None:
|
|
return None
|
|
|
|
for friend in friends:
|
|
OtherUserId = friend.user_id if friend.user_id != userId else friend.friend_id
|
|
if OtherUserId == otherUserId:
|
|
return friend
|
|
|
|
return None
|
|
|
|
def IsFriends(userId, otherUserId):
|
|
friends = FriendRelationship.query.filter((FriendRelationship.user_id == userId) | (FriendRelationship.friend_id == userId)).all()
|
|
if friends is None:
|
|
return False
|
|
|
|
for friend in friends:
|
|
OtherUserId = friend.user_id if friend.user_id != userId else friend.friend_id
|
|
if OtherUserId == otherUserId:
|
|
return True
|
|
|
|
return False
|
|
|
|
def GetFriendRequests(userId):
|
|
friendRequests = FriendRequest.query.filter_by(requestee_id=userId).all()
|
|
if friendRequests is None:
|
|
return []
|
|
|
|
friendRequestList = []
|
|
for friendRequest in friendRequests:
|
|
OtherUser = User.query.filter_by(id=friendRequest.requester_id).first()
|
|
if OtherUser is None:
|
|
continue
|
|
friendRequestList.append(OtherUser)
|
|
|
|
return friendRequestList
|
|
|
|
|
|
def GetFriendCount(userId):
|
|
return FriendRelationship.query.filter((FriendRelationship.user_id == userId) | (FriendRelationship.friend_id == userId)).count() |