diff --git a/modules/admin.py b/modules/admin.py index 851384101784f275a2e6ee7becb2ae8ecc615e66..4af0cf49a5e4d1fa37eabda0cec56702008ce6d5 100644 --- a/modules/admin.py +++ b/modules/admin.py @@ -15,7 +15,7 @@ def add_page(): data = request.get_json() admin = db.User.objects.with_id(data.get("admin_id")) - admin.page_list.append(db.Page.objects.with_id(data.get("page_id"))) + admin.page_list.append(db.VizData.objects.with_id(data.get("page_id"))) admin.save() return jsonify({ "status":200, @@ -29,7 +29,7 @@ def remove_page(): data = request.get_json() admin = db.User.objects.with_id(data.get("admin_id")) - admin.update(pull__page_list = db.Page.objects.with_id(data.get("page_id"))) + admin.update(pull__page_list = db.VizData.objects.with_id(data.get("page_id"))) return jsonify({ "status":200, diff --git a/modules/comment.py b/modules/comment.py index 90a7063bb48eaad26c6a4095b0432935cea73b8a..d03e9cb03cb32e186322568bc85a0363c20fa625 100644 --- a/modules/comment.py +++ b/modules/comment.py @@ -37,7 +37,7 @@ def add_comment(user): text = req.get("text") try: page = db.VizData.objects.with_id(page_id) - new_comment = db.Comment(commenter_id = user.id, comment_text=text, page=page) + new_comment = db.Comment(commenter_id = user.id, comment_text=text, page = page) new_comment.save() return jsonify({ "status":200, @@ -48,3 +48,22 @@ def add_comment(user): "status":500, "message":str(e) }) + +@comment_route.route("/api/comment/add-reply", methods=["POST"]) +@validate_login_token(min_access_level=Roles.ADMIN, pass_user=True) +def add_reply(user): + req = request.get_json() + comment_id = req.get("comment_id") + reply_text = req.get("text") + + comment = db.Comment.objects.with_id(comment_id) + if comment.page not in user.page_list: + return jsonify({ + "status":401, + "message":"Unauthorized reply" + }) + comment.update(reply=db.Reply(replier_id = user.id, reply_text=reply_text)) + return jsonify({ + "status":200, + "message":"Reply added successfully" + }) \ No newline at end of file diff --git a/modules/login.py b/modules/login.py index e34b4574c092e33087ccea0f350604f3d20e845e..18c49719b44f38bcf882cb25b298de2c5360bf83 100644 --- a/modules/login.py +++ b/modules/login.py @@ -75,6 +75,7 @@ def get_user_from_id(): del user.password del user.username del user.page_list + del user.role return jsonify({ "status":200, "data": user diff --git a/modules/page.py b/modules/page.py index 01703095bdeba2579b9d3d29b4dd6f730254dcac..ca7092fbf73b7eb18737edc7c4d4704bd907f079 100644 --- a/modules/page.py +++ b/modules/page.py @@ -26,7 +26,7 @@ def get_top_page(): @page_route.route("/api/page/get", methods=["POST"]) def get_page(): - data_id = request.get_json().get("data_id") + data_id = request.get_json().get("page_id") try: vdata = db.VizData.objects.with_id(data_id) if vdata is not None: @@ -35,6 +35,11 @@ def get_page(): "data":vdata, "subdata":[child for child in vdata.subdata] }) + else: + return jsonify({ + "status":404, + "message":"page not found" + }) except Exception as e: return jsonify({ "status": 500, diff --git a/modules/register.py b/modules/register.py index 151b0f6cdd8faaba06c48689be3ef071125f952d..aa30c164daa15dc962d73e93db850497d21f3631 100644 --- a/modules/register.py +++ b/modules/register.py @@ -1,6 +1,6 @@ from flask import Blueprint, jsonify, request, current_app from database import database as db -from modules.tools.token import Token +from modules.tools.token import Token, validate_login_token from modules.tools.roles import Roles register_route = Blueprint('register', __name__, template_folder="templates")