def detailForumHelper(short_name, related): result = Select('select id, name, short_name, user FROM Forums WHERE short_name = %s', (short_name,)) if len(result) == 0: raise ("Cant find forum " + short_name) result = ForumFormat(result) if "user" in related: result["user"] = UsersHelper.detailsHelper(result["user"]) return result
def updatePost(request): if request.method == "POST": requestData = json.loads(request.body) requiredData = ["user", "name", "about"] try: tryParam(input=requestData, required=requiredData) users = UsersHelper.updateProfileHelper(email=requestData["user"], name=requestData["name"], about=requestData["about"]) except Exception as e: return generateError(e.message) return getResponse(users) else: return HttpResponse(status=400)
def detailsUser(request): if request.method == "GET": requestData = getParam(request) requiredData = ["user"] try: tryParam(input=requestData, required=requiredData) userdetails = UsersHelper.detailsHelper(email=requestData["user"]) except Exception as e: return generateError(e.message) return getResponse(userdetails) else: return HttpResponse(status=400)
def detailsPostHelper(id, option): post = postQueryHelper(id) if post is None: raise Exception("no post with id = "+id) if "user" in option: post["user"] = UsersHelper.detailsHelper(post["user"]) if "forum" in option: post["forum"] = ForumsHelper.detailForumHelper(short_name=post["forum"], related=[]) if "thread" in option: post["thread"] = ThreadsHelper.detailsThreadHelper(id=post["thread"], related=[]) return post
def createUser(request): if request.method == "POST": requestData = json.loads(request.body) requiredData = ["email", "username", "name", "about"] option = getOptional(request=requestData, values=["isAnonymous"]) try: tryParam(input=requestData, required=requiredData) users = UsersHelper.createUserHelper(email=requestData["email"], username=requestData["username"], about=requestData["about"], name=requestData["name"], optional=option) except Exception as e: return generateError(e.message) return getResponse(users) else: return HttpResponse(status=400)
def detailsThreadHelper(id, related): select = Select( 'select date, forum, id, isClosed, isDeleted, message, slug, title, user, dislikes, likes, points, posts ' 'FROM Threads WHERE id = %s', (id, ) ) if len(select) == 0: raise Exception('No thread exists with id=' + str(id)) select = threadFormat(select) if "user" in related: select["user"] = UsersHelper.detailsHelper(select["user"]) if "forum" in related: select["forum"] = ForumsHelper.detailForumHelper(short_name=select["forum"], related=[]) return select
def listForumUsersHelper(short_name, optional): finder.find(table="Forums", id="short_name", value=short_name) select = "SELECT distinct email FROM Users JOIN Posts ON Posts.user = Users.email " \ " JOIN Forums on Forums.short_name = Posts.forum WHERE Posts.forum = %s " if "since_id" in optional: select += " AND Users.id >= " + str(optional["since_id"]) if "order" in optional: select += " ORDER BY Users.id " + optional["order"] if "limit" in optional: select += " LIMIT " + str(optional["limit"]) resultArray = [] result = Select(select, (short_name, )) for user in result: user = user[0] resultArray.append(UsersHelper.detailsHelper(user)) return resultArray