Пример #1
0
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})
Пример #2
0
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})
Пример #3
0
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})
Пример #4
0
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})
Пример #5
0
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})
Пример #6
0
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})
Пример #7
0
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})
Пример #8
0
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})
Пример #9
0
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})
Пример #10
0
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})
Пример #11
0
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})
Пример #12
0
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})
Пример #13
0
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})
Пример #14
0
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})
Пример #15
0
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})
Пример #16
0
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})
Пример #17
0
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})
Пример #18
0
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})