def thread_author(thread: Thread, user=None): """ Thread author JSON representation, from Thread object. :param thread: Thread object :param user: Requesting User object :return: Thread author object JSON representation """ if user is None or user.id != thread.author: # If requesting user is None or different from Thread Original Poster, request OP User object user = User.query.get(thread.author) if user is None: # IMPOSSIBLE - User cannot be None at this point raise AssertionError('Author has to be present') elif thread.anon: # If Anonymous is set, returns gender and authid # TODO: implement chat requests return {'gender': user.get_gender(), 'authid': thread.get_author_authid(), 'chat': get_request(thread, user)} else: # TODO: implement chat requests return { 'nickname': user.nickname, 'university': University.query.get(user.university).name, 'gender': user.gender, 'chat': get_request(thread, user) }
def post_author(post: Post, thread: Thread, user=None): """ Post author JSON representation, from Post object. :param post: Post object :param thread: Thread parent object :param user: Requesting User object :return: Post author object JSON representation """ if user is None or user.id != post.author: user = User.query.get(post.author) if user is None: raise AssertionError('Author has to be present') elif post.anon: return {'gender': user.get_gender(), 'authid': post.get_authid(), 'chat': get_request(thread, user)} else: # TODO: implement chat requests return { 'nickname': user.nickname, 'university': University.query.get(user.university).name, 'gender': user.gender, 'chat': get_request(thread, user) }