Пример #1
0
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,
        })
Пример #2
0
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})
Пример #3
0
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,
        })
Пример #4
0
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})
Пример #5
0
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})
Пример #6
0
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})