def readUsers(**kwargs): """ Returns: Returns All Users Objects in a list """ users = User.objects() return users
def get_user_by_id(pk, **kwargs): """ Args: user id (primary key) Returns : User Object """ user = User.objects(id=pk).first() return user
def check_if_post_liked_by_username(post_id, username, **kwargs): user = User.objects(username=username).first() liked_posts = user.liked_posts if post_id in liked_posts: return True else: return False
def check_if_post_liked_by_userid(post_id, user_pk, **kwargs): user = User.objects(id=user_pk).first() liked_posts = user.liked_posts if post_id in liked_posts: return True else: return False
def add_post(author='aush', creation_time=datetime.datetime.now, content='This is just the beginning', likes=0, **kwargs): """ Args: author: username of author of the post, creation_time: date and time of creation of the post Returns: post_id / Error message """ if (check_user(author)): post = Post() post.author = author post.creation_time = creation_time post.content = content post.likes = likes post.save() post_id = post.id user = User.objects(username=author).first() user.posts.append(post_id) user.save() return post_id return None
def get_user_by_username(username, **kwargs): """ Args: username Returns: User Object """ user = User.objects(username=username).first() return user
def get_following_by_userid(user_pk, **kwargs): """ Returns list of following usernames of a user. Args: userid Returns: # List of Following users """ user = User.objects(id=user_pk).first() return user.followers
def get_following_by_username(username, **kwargs): """ Returns list of following usernames of a user. Args: username Returns: # List of Following users """ user = User.objects(username=username).first() return user.followers
def get_liked_posts_by_username(username, **kwargs): """ Returns list of follower usernames of a user. Args: username Returns: # List of Post_ids liked by the user """ user = User.objects(username=username).first() return user.liked_posts
def get_posts_by_userid(user_pk, **kwargs): """ Args: user_pk Returns: List of Post_Ids """ user = User.objects(id=user_pk).first() posts = user.posts # print("Posts : ", posts) return posts
def get_posts_by_username(username, **kwargs): """ Returns post ids of posts made by a user. Args: username Returns: List of Post_Ids """ user = User.objects(username=username).first() posts = user.posts return posts
def remove_follower(username, follower, **kwargs): """ Args: username: username of the user being followed, follower: username of the follower Returns: Boolean - True/False """ if (check_user(username) == False or check_user(follower) == False): return False user = User.objects(username=username).first() if (follower in user.followers): user.followers.remove(follower) user.save() user1 = User.objects(username=follower).first() if (username in user1.following): user1.following.remove(username) user1.save() return True
def add_follower(username, follower, **kwargs): """ Args: username: username of person being followed, follower: username of follower Returns: Boolean - True/False """ if (check_user(username) and check_user(follower)): user = User.objects(username=username).first() if follower in user.followers: return False user.followers.append(follower) user.save() user1 = User.objects(username=follower).first() user1.following.append(username) user1.save() return True return False
def update_user_nationality(username, nationality, **kwargs): """ Args: username: username, nationality: nationality, Returns: Boolean - True/False """ if (check_user(username)): user = User.objects(username=username).first() user.nationality = nationality user.save() return True return False
def update_user_name(username, name, **kwargs): """ Args: username: username, name: Full Name of the user, Returns: Boolean - True/False """ if (check_user(username)): user = User.objects(username=username).first() user.name = name user.save() return True return False
def update_user_age(username, age=0, **kwargs): """ Args: username: username, age: age Returns: Boolean - True/False """ if (check_user(username)): user = User.objects(username=username).first() if (age != 0): user.age = age user.save() return True return False
def reduce_post_likes(post_id, username, **kwargs): """ Args: post_id: id of the post, username: username of the user unliking the post Returns: Boolean - True/False """ if (check_user(username) and check_post(post_id)): post = Post.objects(id=post_id).first() user = User.objects(username=username).first() if (post_id in user.liked_posts): post.likes = post.likes - 1 user.liked_posts.remove(post_id) post.save() user.save() return True return False
def readUsers(**kwargs): users = User.objects() return users
def check_user(name): user = User.objects(username=name).first() if user is None: return False return True