예제 #1
0
def projectPostComments(ppid):
    if request.method == "GET":
        #Get last post comments
        ppcid = request.args.get("ppcid")
        number = request.args.get("number")
        try:
            number = int(number)
        except:
            number = 2

        if ppcid == None:
            comments = ProjectPostModel.getLastProjectPostComments(
                ppid, number, getCurrentUid())
        else:
            comments = ProjectPostModel.getPreviousProjectPostComments(
                ppid, ppcid, number, getCurrentUid())
        return json.dumps(comments, cls=DateTimeEncoder)
    elif request.method == "POST" and isLoggedIn():
        #Add a new user post comment
        data = json.loads(request.data)
        ProjectPostModel.addProjectPostComment(getCurrentUid(), ppid,
                                               data["comment"])

        return json.dumps({"result": "success"})
    elif request.method == "PUT" and isLoggedIn():
        #Update user post comment
        data = json.loads(request.data)
        ppcid = request.args.get("ppcid")
        comment = ProjectPostModel.getProjectPostComment(
            ppcid, getCurrentUid())

        if comment["uid"] == getCurrentUid():
            ProjectPostModel.updateProjectPostComment(ppcid, data["comment"])
            return json.dumps({"result": "success"})

        return render_template("private-api/forbidden-request.html")

    else:
        #Delete a user post comment
        ppcid = request.args.get("ppcid")
        comment = ProjectPostModel.getProjectPostComment(
            ppcid, getCurrentUid())

        if isLoggedIn() and comment["uid"] == getCurrentUid():
            ProjectPostModel.removeProjectPostComment(ppcid)
            return json.dumps({"result": "success"})

        return render_template("private-api/forbidden-request.html")

    return render_template("private-api/unknown-request.html")
예제 #2
0
파일: project.py 프로젝트: fozbek/devSeater
def projectPage(projectName):
  currentUser = getCurrentUser()
  project = ProjectModel.getProjectByProjectName(projectName)

  if project == None:
    return render_template(
      "not-found.html",
      title = "Project Not Found!",
      msg = "The project you trying to access not found!",
      currentUser = getCurrentUser()
      )

  projectLinks = ProjectModel.getProjectLinks(project["pid"])
  lastProjectPosts = ProjectPostModel.getLastProjectPosts(project["pid"], 10, getCurrentUid())
  numberOfMembers = ProjectModel.getNumberOfMembers(project["pid"])
  numberOfEmptySeaters = SeaterModel.getProjectEmptySeaterNumber(project["pid"])
  popularProjects = ProjectModel.getPopularProjects(10)
  whoToFollowList = UserModel.getWhoToFollowList(5, getCurrentUid())


  return render_template(
    "project-page.html",
    currentUser = currentUser,
    project = project,
    projectLinks = projectLinks,
    lastProjectPosts = lastProjectPosts,
    numberOfMembers = numberOfMembers,
    numberOfEmptySeaters = numberOfEmptySeaters,
    popularProjects = popularProjects,
    whoToFollowList = whoToFollowList
    )
예제 #3
0
def projectPosts(pid):
    if request.method == "GET":
        #Get last posts
        ppid = request.args.get("ppid")
        if ppid == None:
            posts = ProjectPostModel.getLastProjectPosts(
                pid, 10, getCurrentUid())
        else:
            posts = ProjectPostModel.getPreviousProjectPosts(
                pid, ppid, 10, getCurrentUid())

        return json.dumps(posts, cls=DateTimeEncoder)

    elif request.method == "POST" and isLoggedIn():
        if not ProjectModel.isProjectMember(getCurrentUid(), pid):
            return render_template("private-api/forbidden-request.html")

        #Stripping
        data = json.loads(request.data)
        data["post"] = data["post"].strip()

        if data["post"] != "":
            #Add project post
            ProjectPostModel.addProjectPost(getCurrentUid(), pid, data["post"])
            return json.dumps({"result": "success"})
        else:
            return json.dumps({
                "result": "fail",
                "msg": "post cannot be empty"
            })

    elif request.method == "PUT" and isLoggedIn():
        if not ProjectModel.isProjectMember(getCurrentUid(), pid):
            return render_template("private-api/forbidden-request.html")

        #Stripping
        data = json.loads(request.data)
        data["post"] = data["post"].strip()

        #Update project post
        ppid = request.args.get("ppid")

        #Validate
        if data["post"] == "" or ppid == None:
            return json.dumps({
                "result": "fail",
                "msg": "ppid and post cannot be empty"
            })

        post = ProjectPostModel.getProjectPost(ppid)

        if post["uid"] == getCurrentUid():
            ProjectPostModel.updateProjectPost(ppid, data["post"])
            return json.dumps({"result": "success"})
        else:
            return render_template("private-api/forbidden-request.html")

    else:
        #Delete a project post
        ppid = request.args.get("ppid")
        post = ProjectPostModel.getProjectPost(ppid, getCurrentUid())

        if post["uid"] == getCurrentUid() and isLoggedIn():
            ProjectPostModel.removeProjectPost(ppid)
            return json.dumps({"result": "success"})
        else:
            return render_template("private-api/forbidden-request.html")
    return render_template("private-api/unknown-request.html")
예제 #4
0
def projectPostCommentLikeNumber(ppcid):
    number = ProjectPostModel.getProjectPostCommentLikeNumber(ppcid)
    return json.dumps({"number": number})
예제 #5
0
def unlikeProjectPostComment(ppcid):
    ProjectPostModel.unlikeProjectPostComment(getCurrentUid(), ppcid)
    return json.dumps({"result": "success"})
예제 #6
0
def likeProjectPost(ppid):
    ProjectPostModel.likeProjectPost(getCurrentUid(), ppid)
    return json.dumps({"result": "success"})