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")
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 )
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")
def projectPostCommentLikeNumber(ppcid): number = ProjectPostModel.getProjectPostCommentLikeNumber(ppcid) return json.dumps({"number": number})
def unlikeProjectPostComment(ppcid): ProjectPostModel.unlikeProjectPostComment(getCurrentUid(), ppcid) return json.dumps({"result": "success"})
def likeProjectPost(ppid): ProjectPostModel.likeProjectPost(getCurrentUid(), ppid) return json.dumps({"result": "success"})