Example #1
0
def add_threads(forum, title, isClosed, user, date, message, slug, optional):
    verify(table_name="Users", param="email", val=user)
    verify(table_name="Forums", param="short_name", val=forum)
    isDeleted = 0
    if "isDeleted" in optional:
        isDeleted = optional["isDeleted"]
    thread = selectQuery(
        'select date, forum, id, isClosed, isDeleted, message, slug, title, user, dislikes, likes, points, posts '
        'FROM Threads WHERE slug = %s', (slug, )
    )
    if len(thread) == 0:
        ins_upd_delQuery(
            'INSERT INTO Threads (forum, title, isClosed, user, date, message, slug, isDeleted) '
            'VALUES (%s, %s, %s, %s, %s, %s, %s, %s)',
            (forum, title, isClosed, user, date, message, slug, isDeleted, )
        )
        thread = selectQuery(
            'select date, forum, id, isClosed, isDeleted, message, slug, title, user, dislikes, likes, points, posts '
            'FROM Threads WHERE slug = %s', (slug, )
        )
    response = threads_info(thread)
    del response["dislikes"]
    del response["likes"]
    del response["points"]
    del response["posts"]
    return response
Example #2
0
def vote(id, vote):
    verify(table_name="Posts", param="id", val=id)
    if vote == -1:
        ins_upd_delQuery("UPDATE Posts SET dislikes=dislikes+1, points=points-1 where id = %s", (id, ))
    else:
        ins_upd_delQuery("UPDATE Posts SET likes=likes+1, points=points+1  where id = %s", (id, ))
    return details(id=id, related=[])
Example #3
0
def remove_follows(email1, email2):
    follows = selectQuery('SELECT id FROM Followers WHERE follower = %s AND followee = %s', (email1, email2, ))
    if len(follows) != 0:
        ins_upd_delQuery('DELETE FROM Followers WHERE follower = %s AND followee = %s', (email1, email2, ))
    else:
        raise Exception("No such following")
    return users.details(email1)
Example #4
0
def remove_restore(thread_id, status):
    verify(table_name="Threads", param="id", val=thread_id)
    ins_upd_delQuery("UPDATE Threads SET isDeleted = %s WHERE id = %s", (status, thread_id, ))
    response = {
        "thread": thread_id
    }
    return response
Example #5
0
def open_close_threads(id, isClosed):
    verify(table_name="Threads", param="id", val=id)
    ins_upd_delQuery("UPDATE Threads SET isClosed = %s WHERE id = %s", (isClosed, id, ))
    response = {
        "thread": id
    }
    return response
Example #6
0
def add_forum(name, short_name, user):
    verify(table_name="Users", param="email", val=user)
    forum = selectQuery('SELECT id, name, short_name, user FROM Forums WHERE short_name = %s', (short_name, ))
    if len(forum) == 0:
        ins_upd_delQuery('INSERT INTO Forums (name, short_name, user) VALUES (%s, %s, %s)', (name, short_name, user, ))
        forum = selectQuery('SELECT id, name, short_name, user FROM Forums WHERE short_name = %s', (short_name, ))
    return forums_info(forum)
Example #7
0
def add_follows(email1, email2):
    verify(table_name="Users", param="email", val=email1)
    verify(table_name="Users", param="email", val=email2)
    if email1 == email2:
        raise Exception("User with email=" + email1 + " can't follow himself")
    follows = selectQuery('SELECT id FROM Followers WHERE follower = %s AND followee = %s', (email1, email2, ))
    if len(follows) == 0:
        ins_upd_delQuery('INSERT INTO Followers (follower, followee) VALUES (%s, %s)', (email1, email2, ))
    user = users.details(email1)
    return user
Example #8
0
def add_users(email, username, about, name, optional):
    isAnonymous = 0
    if "isAnonymous" in optional:
        isAnonymous = optional["isAnonymous"]
    try:
        user = select_user('select email, about, isAnonymous, id, name, username FROM Users WHERE email = %s', (email, ))
        if len(user) == 0:
            ins_upd_delQuery(
                'INSERT INTO Users (email, about, name, username, isAnonymous) VALUES (%s, %s, %s, %s, %s)',
                (email, about, name, username, isAnonymous, ))
        user = select_user('select email, about, isAnonymous, id, name, username FROM Users WHERE email = %s', (email, ))
    except Exception as e:
        raise Exception(e.message)
    return users_info(user)
Example #9
0
def remove_subscriptions(email, thread_id):
    verify(table_name="Threads", param="id", val=thread_id)
    verify(table_name="Users", param="email", val=email)
    subscriptions = selectQuery(
        'SELECT thread, user FROM Subscriptions WHERE user = %s AND thread = %s', (email, thread_id, )
    )
    if len(subscriptions) == 0:
        raise Exception("user " + email + " does not subscribe thread #" + str(thread_id))
    ins_upd_delQuery('DELETE FROM Subscriptions WHERE user = %s AND thread = %s', (email, thread_id, ))
    response = {
        "thread": subscriptions[0][0],
        "user": subscriptions[0][1]
    }
    return response
Example #10
0
def add_subscriptions(email, thread_id):
    verify(table_name="Threads", param="id", val=thread_id)
    verify(table_name="Users", param="email", val=email)
    subscription = selectQuery(
        'select thread, user FROM Subscriptions WHERE user = %s AND thread = %s', (email, thread_id, )
    )
    if len(subscription) == 0:
        ins_upd_delQuery('INSERT INTO Subscriptions (thread, user) VALUES (%s, %s)', (thread_id, email, ))
        subscription = selectQuery(
            'SELECT thread, user FROM Subscriptions WHERE user = %s AND thread = %s', (email, thread_id, )
        )
    response = {
        "thread": subscription[0][0],
        "user": subscription[0][1]
    }
    return response
Example #11
0
def remove_restore(post_id, status):
    verify(table_name="Posts", param="id", val=post_id)
    ins_upd_delQuery("UPDATE Posts SET isDeleted = %s WHERE Posts.id = %s", (status, post_id, ))
    return {
        "post": post_id
    }
Example #12
0
def update(id, message):
    verify(table_name="Posts", param="id", val=id)
    ins_upd_delQuery('UPDATE Posts SET message = %s WHERE id = %s', (message, id, ))
    return details(id=id, related=[])
Example #13
0
def update_threads(id, slug, message):
    verify(table_name="Threads", param="id", val=id)
    ins_upd_delQuery('UPDATE Threads SET slug = %s, message = %s WHERE id = %s',(slug, message, id, ))
    return details(id=id, related=[])
Example #14
0
def update_users(email, about, name):
    verify(table_name="Users", param="email", val=email)
    ins_upd_delQuery('UPDATE Users SET email = %s, about = %s, name = %s WHERE email = %s', (email, about, name, email, ))
    return details(email)