def follow(following_id): error = None user_id = session.get('user', None) if user_id is None: return redirect(url_for('home')) following_id = int(following_id) if user_id == following_id: error = CANNOT_FOLLOW_YOURSELF return json.dumps({ "success": error is None, "error": error, }) if request.method == "POST": friendship = sql.execute_query( """ SELECT * FROM friendship f WHERE f.user_id = %s and f.friend_id = %s """, (following_id, user_id)) if friendship: error = ALREADY_FOLLOW else: results = sql.execute_update( """ INSERT INTO friendship VALUES (%s, %s) """, (following_id, user_id)) return json.dumps({ "success": error is None, "error": error, })
def delete_post(post_id): error = None user_id = session.get('user', None) if user_id is None: return redirect(url_for('home')) if request.method == 'POST': results = sql.execute_update('DELETE FROM posts WHERE user_id = %s AND post_id = %s', (user_id, post_id)) if results != 1: error = POST_NOT_FOUND return json.dumps({'success': error is None, 'error': error})
def unfollow(following_id): error = None user_id = session.get('user', None) if user_id is None: return redirect(url_for('home')) if request.method == "POST": results = sql.execute_update( """ DELETE FROM friendship WHERE user_id = %s AND friend_id = %s """, (following_id, user_id)) if (results != 1): error = UNFOLLOW_FAIL return json.dumps({ "success": error is None, "error": error, })
def edit_post(post_id): error = None user_id = session.get('user', None) if user_id is None: return redirect(url_for('home')) if request.method == 'POST': content = request.form.get('content', None) if content is None or len(content) == 0: error = EMPTY_POST else: results = sql.execute_update('UPDATE posts SET content = %s WHERE post_id = %s AND user_id = %s', (content, post_id, user_id)) if results != 1: error = POST_NOT_FOUND return json.dumps({'success': error is None, 'error': error})
def like_post(post_id): error = None user_id = session.get('user', None) if user_id is None: return redirect(url_for('home')) if request.method == 'POST': posts = sql.execute_query( 'SELECT post_id, user_id FROM posts p WHERE p.post_id = %s', (post_id,)) if(len(posts) < 1): error = POST_NOT_FOUND else: like_rel = sql.execute_query('SELECT post_id, user_id FROM likes_posts lp WHERE lp.post_id = %s AND user_id = %s', (post_id, user_id)) if(len(like_rel) > 0): error = LIKED_POST else: results = sql.execute_update('INSERT INTO likes_posts (post_id, user_id) VALUES (%s, %s) ON CONFLICT DO NOTHING', (post_id, user_id)) return json.dumps({'success': error is None, 'error': error})
def dislike_post(post_id): error = None user_id = session.get('user', None) if user_id is None: return redirect(url_for('home')) if request.method == 'POST': posts = sql.execute_query( 'SELECT post_id, user_id FROM posts p WHERE p.post_id = %s', (post_id,)) if (len(posts) < 1): error = POST_NOT_FOUND else: like_rel = sql.execute_query( 'SELECT post_id, user_id FROM likes_posts lp WHERE lp.post_id = %s AND user_id = %s', (post_id, user_id)) if (len(like_rel) < 1): error = UNLIKED_POST else: results = sql.execute_update('DELETE FROM likes_posts WHERE user_id = %s AND post_id = %s', (user_id, post_id)) return json.dumps({'success': error is None, 'error': error})