def update_user(): try: content_json = request.json # print content_json except BadRequest: return jsonify({'code': 2, 'response': "Invalid request(syntax)"}) if 'user' not in content_json or 'about' not in content_json or 'name' not in content_json: return jsonify({ 'code': 3, 'response': "Incorrect request: some data missing" }) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute( """UPDATE `users` SET `about` = %s, `name` = %s WHERE `email` = %s;""", (content_json['about'], content_json['name'], content_json['user'])) except MySQLdb.Error: return jsonify({ 'code': 3, 'response': "Incorrect request: user is already exist" }) db.commit() user = functions.user_details(cursor, content_json['user']) return jsonify({'code': 0, 'response': user})
def details_post(): post_id = request.args.get('post', None) related = request.args.getlist('related') if post_id is None: return jsonify({'code': 3, 'response': "Incorrect request: some data missing"}) post_id = int(post_id) if post_id < 1: return jsonify({'code': 1, 'response': "Incorrect request: post don\'t found"}) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) post = functions.post_details(cursor, post_id) if 'user' in related: user = functions.user_details(cursor, post['user']) post.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, post['forum']) post.update({'forum': forum}) if 'thread' in related: thread = functions.thread_details(cursor, post['thread']) post.update({'thread': thread}) return jsonify({'code': 0, 'response': post})
def delete_follow(): try: content_json = request.json # print content_json except BadRequest: return jsonify({'code': 2, 'response': "Invalid request(syntax)"}) if 'follower' not in content_json or 'followee' not in content_json: return jsonify({ 'code': 3, 'response': "Incorrect request: some data missing" }) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute( """DELETE FROM `followers` WHERE `follower` = %s and `followee` = %s;""", (content_json['follower'], content_json['followee'])) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) db.commit() user = functions.user_details(cursor, content_json['follower']) return jsonify({'code': 0, 'response': user})
def thread_detail(): thread_id = request.args.get('thread', None) related = request.args.getlist('related') thread_id = int(thread_id) if thread_id is ('' or None) and thread_id <= 0: return jsonify({ 'code': 2, 'response': "Incorrect request: some data missing" }) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) thread = functions.thread_details(cursor, thread_id) if thread is None: return jsonify({'code': 1, 'response': "Post not found"}) if 'thread' in related: return jsonify({'code': 3, 'response': "Incorrect request"}) if 'user' in related: user = functions.user_details(cursor, thread['user']) thread.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, thread['forum']) thread.update({'forum': forum}) return jsonify({'code': 0, 'response': thread})
def update_user(): try: content_json = request.json # print content_json except BadRequest: return jsonify({'code': 2, 'response': "Invalid request(syntax)"}) if 'user' not in content_json or 'about' not in content_json or 'name' not in content_json: return jsonify({'code': 3, 'response': "Incorrect request: some data missing"}) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute( """UPDATE `users` SET `about` = %s, `name` = %s WHERE `email` = %s;""", ( content_json['about'], content_json['name'], content_json['user'] ) ) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request: user is already exist"}) db.commit() user = functions.user_details(cursor, content_json['user']) return jsonify({'code': 0, 'response': user})
def thread_detail(): thread_id = request.args.get('thread', None) related = request.args.getlist('related') thread_id = int(thread_id) if thread_id is ('' or None) and thread_id <= 0: return jsonify({'code': 2, 'response': "Incorrect request: some data missing"}) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) thread = functions.thread_details(cursor, thread_id) if thread is None: return jsonify({'code': 1, 'response': "Post not found"}) if 'thread' in related: return jsonify({'code': 3, 'response': "Incorrect request"}) if 'user' in related: user = functions.user_details(cursor, thread['user']) thread.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, thread['forum']) thread.update({'forum': forum}) return jsonify({'code': 0, 'response': thread})
def forum_detail(): short_name = request.args.get('forum', None) related = request.args.get('related', []) if short_name is ('' or None): return jsonify({ 'code': 2, 'response': "Incorrect request: some data missing" }) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute("""SELECT * FROM `forums` WHERE `short_name` = %s;""", (short_name, )) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) forum = cursor.fetchone() if related == 'user': user = functions.user_details(cursor, forum['user']) forum.update({'user': user}) if forum is None: return jsonify({'code': 1, 'response': "Post not found"}) return jsonify({'code': 0, 'response': forum})
def delete_follow(): try: content_json = request.json # print content_json except BadRequest: return jsonify({'code': 2, 'response': "Invalid request(syntax)"}) if 'follower' not in content_json or 'followee' not in content_json: return jsonify({'code': 3, 'response': "Incorrect request: some data missing"}) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute( """DELETE FROM `followers` WHERE `follower` = %s and `followee` = %s;""", ( content_json['follower'], content_json['followee'] ) ) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) db.commit() user = functions.user_details(cursor, content_json['follower']) return jsonify({'code': 0, 'response': user})
def list_posts_from_forum(): forum = request.args.get('forum', None) since = request.args.get('since', None) limit = request.args.get('limit', None) order = request.args.get('order', 'DESC') related = request.args.getlist('related') if forum is None: return jsonify({ 'code': 3, 'response': "Incorrect request: some data missing" }) else: query = """SELECT `id`, `message`, `forum`, `user`, `thread`, `likes`, `dislikes`, `points`, `isDeleted`, `isSpam`, `isEdited`, `isApproved`, `isHighlighted`, `date`, `parent` FROM `posts` WHERE `forum` = %s """ query_params = (forum, ) if since is not None: query += " AND `date` >= %s " query_params += (since, ) query += " ORDER BY `date` " + order + " " if limit is not None: query += " LIMIT %s;" query_params += (int(limit), ) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute(query, query_params) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) posts = [i for i in cursor.fetchall()] resp = [] for post in posts: if 'user' in related: user = functions.user_details(cursor, post['user']) post.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, post['forum']) post.update({'forum': forum}) if 'thread' in related: thread = functions.thread_details(cursor, post['thread']) post.update({'thread': thread}) post.update({'date': str(post['date'])}) resp.append(post) return jsonify({'code': 0, 'response': resp})
def details_user(): user_email = request.args.get('user', None) if user_email is ('' or None): return jsonify({'code': 2, 'response': "Incorrect request: some data missing"}) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) user = functions.user_details(cursor, user_email) if user is None: return jsonify({'code': 1, 'response': 'User not found '}) return jsonify({'code': 0, 'response': user})
def list_threads_from_forum(): forum = request.args.get('forum', None) since = request.args.get('since', None) limit = request.args.get('limit', None) order = request.args.get('order', 'DESC') related = request.args.getlist('related') if forum is None: return jsonify({ 'code': 3, 'response': "Incorrect request: some data missing" }) else: query = """ SELECT * FROM `threads` WHERE `forum` = %s """ query_params = (forum, ) if since is not None: query += " AND `date` >= %s " query_params += (since, ) query += " ORDER BY `date` " + order + " " if limit is not None: query += "LIMIT %s;" query_params += (int(limit), ) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute(query, query_params) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) resp = [] threads = [i for i in cursor.fetchall()] for thread in threads: if 'user' in related: user = functions.user_details(cursor, thread['user']) thread.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, thread['forum']) thread.update({'forum': forum}) thread.update({'date': str(thread['date'])}) resp.append(thread) return jsonify({'code': 0, 'response': resp})
def list_posts_from_forum(): forum = request.args.get('forum', None) since = request.args.get('since', None) limit = request.args.get('limit', None) order = request.args.get('order', 'DESC') related = request.args.getlist('related') if forum is None: return jsonify({'code': 3, 'response': "Incorrect request: some data missing"}) else: query = """SELECT `id`, `message`, `forum`, `user`, `thread`, `likes`, `dislikes`, `points`, `isDeleted`, `isSpam`, `isEdited`, `isApproved`, `isHighlighted`, `date`, `parent` FROM `posts` WHERE `forum` = %s """ query_params = (forum,) if since is not None: query += " AND `date` >= %s " query_params += (since,) query += " ORDER BY `date` " + order + " " if limit is not None: query += " LIMIT %s;" query_params += (int(limit),) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute(query, query_params) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) posts = [i for i in cursor.fetchall()] resp = [] for post in posts: if 'user' in related: user = functions.user_details(cursor, post['user']) post.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, post['forum']) post.update({'forum': forum}) if 'thread' in related: thread = functions.thread_details(cursor, post['thread']) post.update({'thread': thread}) post.update({'date': str(post['date'])}) resp.append(post) return jsonify({'code': 0, 'response': resp})
def details_user(): user_email = request.args.get('user', None) if user_email is ('' or None): return jsonify({ 'code': 2, 'response': "Incorrect request: some data missing" }) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) user = functions.user_details(cursor, user_email) if user is None: return jsonify({'code': 1, 'response': 'User not found '}) return jsonify({'code': 0, 'response': user})
def list_threads_from_forum(): forum = request.args.get('forum', None) since = request.args.get('since', None) limit = request.args.get('limit', None) order = request.args.get('order', 'DESC') related = request.args.getlist('related') if forum is None: return jsonify({'code': 3, 'response': "Incorrect request: some data missing"}) else: query = """ SELECT * FROM `threads` WHERE `forum` = %s """ query_params = (forum,) if since is not None: query += " AND `date` >= %s " query_params += (since,) query += " ORDER BY `date` " + order + " " if limit is not None: query += "LIMIT %s;" query_params += (int(limit),) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute(query,query_params) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) resp = [] threads = [i for i in cursor.fetchall()] for thread in threads: if 'user' in related: user = functions.user_details(cursor, thread['user']) thread.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, thread['forum']) thread.update({'forum': forum}) thread.update({'date': str(thread['date'])}) resp.append(thread) return jsonify({'code': 0, 'response': resp})
def list_users_from_forum(): forum = request.args.get('forum', None) since_id = request.args.get('since_id', None) limit = request.args.get('limit', None) order = request.args.get('order', 'DESC') if forum is None: return jsonify({'code': 3, 'response': "Incorrect request: some data missing"}) if since_id is None: since_str = " " else: since_str = " AND users.id >= " + since_id if limit is None: limit = " " else: limit = ' LIMIT ' + limit db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute( """SELECT * FROM `users` WHERE `email` IN (SELECT DISTINCT `user` FROM `posts` WHERE `forum` = %s)""" + since_str + " ORDER BY `name` " + order + limit + " ;", ( forum, ) ) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) resp = [] users = [i for i in cursor.fetchall()] for user in users: user = functions.user_details(cursor, user['email']) resp.append(user) return jsonify({'code': 0, 'response': resp})
def list_users_from_forum(): forum = request.args.get('forum', None) since_id = request.args.get('since_id', None) limit = request.args.get('limit', None) order = request.args.get('order', 'DESC') if forum is None: return jsonify({ 'code': 3, 'response': "Incorrect request: some data missing" }) if since_id is None: since_str = " " else: since_str = " AND users.id >= " + since_id if limit is None: limit = " " else: limit = ' LIMIT ' + limit db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute( """SELECT * FROM `users` WHERE `email` IN (SELECT DISTINCT `user` FROM `posts` WHERE `forum` = %s)""" + since_str + " ORDER BY `name` " + order + limit + " ;", (forum, )) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) resp = [] users = [i for i in cursor.fetchall()] for user in users: user = functions.user_details(cursor, user['email']) resp.append(user) return jsonify({'code': 0, 'response': resp})
def details_post(): post_id = request.args.get('post', None) related = request.args.getlist('related') if post_id is None: return jsonify({ 'code': 3, 'response': "Incorrect request: some data missing" }) post_id = int(post_id) if post_id < 1: return jsonify({ 'code': 1, 'response': "Incorrect request: post don\'t found" }) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) post = functions.post_details(cursor, post_id) if 'user' in related: user = functions.user_details(cursor, post['user']) post.update({'user': user}) if 'forum' in related: forum = functions.forum_details(cursor, post['forum']) post.update({'forum': forum}) if 'thread' in related: thread = functions.thread_details(cursor, post['thread']) post.update({'thread': thread}) return jsonify({'code': 0, 'response': post})
def forum_detail(): short_name = request.args.get('forum', None) related = request.args.get('related', []) if short_name is ('' or None): return jsonify({'code': 2, 'response': "Incorrect request: some data missing"}) db = mysql.get_db() cursor = db.cursor(MySQLdb.cursors.DictCursor) try: cursor.execute("""SELECT * FROM `forums` WHERE `short_name` = %s;""", (short_name,)) except MySQLdb.Error: return jsonify({'code': 3, 'response': "Incorrect request"}) forum = cursor.fetchone() if related == 'user': user = functions.user_details(cursor, forum['user']) forum.update({'user': user}) if forum is None: return jsonify({'code': 1, 'response': "Post not found"}) return jsonify({'code': 0, 'response': forum})