Exemple #1
0
def details():
	qs = get_json(request)

	threadID = qs.get('thread')
	if not threadID:
		return json.dumps({"code": 2, "response": "No 'thread' key"}, indent=4)

	thread = get_thread_by_id(threadID)
	if thread == list():
		return json.dumps({"code": 1, "response": "Empty set"}, indent=4)

	relatedValues = list()
	qsRelated = qs.get('related')
	if type(qsRelated) is list:
		relatedValues.extend(qsRelated)
	elif type(qsRelated) is str:
		relatedValues.append(qsRelated)

	forumRelated = False
	userRelated = False
	for relatedValue in relatedValues:
		if relatedValue == 'forum':
			forumRelated = True
		elif relatedValue == 'user':
			userRelated = True
		else:
			return json.dumps({"code": 3, "response": "Wrong related value"}, indent=4)

	if forumRelated:
		thread['forum'] = get_forum_dict(short_name=thread['forum'])

	if userRelated:
		thread['user'] = get_user_dict(thread['user'])

	return json.dumps({"code": 0, "response": thread}, indent=4)
Exemple #2
0
def update():
	requestBody = request.json

	message = requestBody.get('message')
	slug = requestBody.get('slug')
	threadID = requestBody.get('thread')

	db.execute("""UPDATE Thread SET message = %(message)s, slug = %(slug)s WHERE thread = %(thread)s;""",
			   {'message': message, 'slug': slug, 'thread': threadID}, True)
	return json.dumps({"code": 0, "response": get_thread_by_id(threadID)}, indent=4)
Exemple #3
0
def listPosts():
    qs = get_json(request)
    forum = qs.get('forum')

    if not forum:
        return json.dumps({"code": 2, "response": "No 'forum' key"}, indent=4)

    # Related part
    relatedValues = list()
    qsRelated = qs.get('related')
    if type(qsRelated) is list:
        relatedValues.extend(qsRelated)
    elif type(qsRelated) is str:
        relatedValues.append(qsRelated)

    threadRelated = False
    forumRelated = False
    userRelated = False
    for relatedValue in relatedValues:
        if relatedValue == 'thread':
            threadRelated = True
        elif relatedValue == 'forum':
            forumRelated = True
        elif relatedValue == 'user':
            userRelated = True
        else:
            return json.dumps({
                "code": 3,
                "response": "Wrong related value"
            },
                              indent=4)

    since = qs.get('since', '')
    limit = qs.get('limit', -1)
    sort = qs.get('sort', 'flat')
    order = qs.get('order', 'desc')

    postList = get_post_list(forum=forum,
                             since=since,
                             limit=limit,
                             sort=sort,
                             order=order)

    for post in postList:
        if userRelated:
            post['user'] = get_user_dict(post['user'])

        if threadRelated:
            post['thread'] = get_thread_by_id(post['thread'])

        if forumRelated:
            post['forum'] = get_forum_dict(short_name=post['forum'])

    return json.dumps({"code": 0, "response": postList}, indent=4)
Exemple #4
0
def vote():
	requestBody = request.json

	voteValue = requestBody.get('vote')
	threadID = requestBody.get('thread')

	if voteValue == 1:
		db.execute("""UPDATE Thread SET likes = likes + 1, points = points + 1 WHERE thread = %(thread)s;""",
				   {'thread': threadID}, True)
	else:
		db.execute("""UPDATE Thread SET dislikes = dislikes + 1, points = points - 1 WHERE thread = %(thread)s;""",
				   {'thread': threadID}, True)
	return json.dumps({"code": 0, "response": get_thread_by_id(threadID)}, indent=4)
Exemple #5
0
def listPosts():
	qs = get_json(request)
	forum = qs.get('forum')

	if not forum:
		return json.dumps({"code": 2, "response": "No 'forum' key"}, indent=4)

	# Related part
	relatedValues = list()
	qsRelated = qs.get('related')
	if type(qsRelated) is list:
		relatedValues.extend(qsRelated)
	elif type(qsRelated) is str:
		relatedValues.append(qsRelated)

	threadRelated = False
	forumRelated = False
	userRelated = False
	for relatedValue in relatedValues:
		if relatedValue == 'thread':
			threadRelated = True
		elif relatedValue == 'forum':
			forumRelated = True
		elif relatedValue == 'user':
			userRelated = True
		else:
			return json.dumps({"code": 3, "response": "Wrong related value"}, indent=4)

	since = qs.get('since', '')
	limit = qs.get('limit', -1)
	sort = qs.get('sort', 'flat')
	order = qs.get('order', 'desc')

	postList = get_post_list(forum=forum, since=since, limit=limit, sort=sort, order=order)

	for post in postList:
		if userRelated:
			post['user'] = get_user_dict(post['user'])

		if threadRelated:
			post['thread'] = get_thread_by_id(post['thread'])

		if forumRelated:
			post['forum'] = get_forum_dict(short_name=post['forum'])

	return json.dumps({"code": 0, "response": postList}, indent=4)