コード例 #1
0
ファイル: ForumsHelper.py プロジェクト: pashna/DataBaseForum
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
コード例 #2
0
ファイル: user.py プロジェクト: pashna/DataBaseForum
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)
コード例 #3
0
ファイル: user.py プロジェクト: pashna/DataBaseForum
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)
コード例 #4
0
ファイル: PostHelpers.py プロジェクト: pashna/DataBaseForum
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
コード例 #5
0
ファイル: user.py プロジェクト: pashna/DataBaseForum
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)
コード例 #6
0
ファイル: ThreadsHelper.py プロジェクト: pashna/DataBaseForum
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
コード例 #7
0
ファイル: ForumsHelper.py プロジェクト: pashna/DataBaseForum
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