Spaces:
Sleeping
Sleeping
from flask import jsonify | |
from bson import json_util, ObjectId | |
def saveMindmap(data, userId, savedMindmap): | |
try: | |
result = savedMindmap.insert_one({ | |
"userId": userId, | |
"data": data, | |
}) | |
print(result.inserted_id) | |
return jsonify({"result": str(result.inserted_id)}), 201 | |
except Exception as e: | |
print(e) | |
return jsonify({"error": "An error occurred"}), 500 | |
def saveMindmapById(data, userId, savedMindmap): | |
try: | |
map_id = data["_id"] | |
existing_map = savedMindmap.find_one({"_id": ObjectId(map_id)}) | |
if existing_map: | |
existing_user_id = existing_map.get("userId") | |
if existing_user_id != userId: | |
# If the existing map belongs to a different user, create a new map for the current user | |
savedMindmap.insert_one({ | |
"userId": userId, | |
"data": data["data"] | |
}) | |
return jsonify({"message": "Mindmap Saved to your space!"}), 201 | |
else: | |
# If the existing map belongs to the current user, update it with the new data | |
savedMindmap.update_one({"_id": ObjectId(map_id)}, {"$set": {"data": data["data"]}}) | |
return jsonify({"message": "Mindmap Updated!"}), 200 | |
else: | |
# If the map does not exist, create a new one with the provided _id for the current user | |
savedMindmap.insert_one({ | |
"_id": ObjectId(map_id), | |
"userId": userId, | |
"data": data["data"] | |
}) | |
return jsonify({"message": "Minmdap Saved!"}), 201 | |
except Exception as e: | |
print(e) | |
return jsonify({"error": "An error occurred"}), 500 | |
def saveGeneratedData(mapId, nodeId, json_data, savedMindmap): | |
try: | |
mindMap = savedMindmap.find_one({"_id": ObjectId(mapId)}) | |
# if mindMap["userId"] != userId: | |
# return jsonify({"message": "Unauthorized"}), 401 | |
initialNode = mindMap["data"]["initialNodes"] | |
for node in initialNode: | |
if node["id"] == nodeId: | |
node["data"]["GenData"] = json_data | |
# print(initialNode); | |
savedMindmap.update_one({"_id": ObjectId(mapId)}, {"$set": {"data.initialNodes": initialNode}}) | |
return jsonify({"message": "Data Added!"}), 200 | |
except Exception as e: | |
print(e) | |
return jsonify({"error": "An error occurred"}), 500 | |
def getMindmap(userId, savedMindmap): | |
try: | |
results = savedMindmap.find({"userId": userId}) | |
mindmaps = [{"_id": str(result["_id"]), "data": result["data"]} for result in results] | |
if mindmaps: | |
# Convert ObjectId to string for JSON serialization | |
return json_util.dumps({"data": mindmaps}), 200 | |
else: | |
return jsonify({"msg": "No Mindmap stored"}), 404 | |
except Exception as e: | |
print(e) | |
return jsonify({"error": "An error occurred"}), 500 | |
def getMindmapHistory(userId, savedMindmap): | |
try: | |
results = savedMindmap.find({"userId": userId}).limit(3) | |
mindmaps = [{"_id": str(result["_id"]), "data": result["data"]} for result in results] | |
if mindmaps: | |
# Convert ObjectId to string for JSON serialization | |
return json_util.dumps({"data": mindmaps}), 200 | |
else: | |
return jsonify({"msg": "No Mindmap stored"}), 404 | |
except Exception as e: | |
print(e) | |
return jsonify({"error": "An error occurred"}), 500 | |
def getMindmapByid(id, savedMindmap): | |
try: | |
object_id = ObjectId(id) | |
result = savedMindmap.find_one({"_id": object_id}) | |
if result: | |
return json_util.dumps({"data": result}), 200 | |
else: | |
return jsonify({"msg": "Mindmap not found"}), 404 | |
except Exception as e: | |
print(e) | |
return jsonify({"error": "An error occurred"}), 500 | |
def deleteMindmap(userId, data, savedMindmap): | |
try: | |
object_id = ObjectId(data["_id"]) | |
result = savedMindmap.delete_one({"userId": userId, "_id": object_id}) | |
if result.deleted_count == 1: | |
return jsonify({"result": True}), 200 | |
else: | |
return jsonify({"result": False, "message": "Mindmap not found"}), 404 | |
except Exception as e: | |
print(e) | |
return jsonify({"message": "Something went wrong"}), 500 |