i don't remember making any changes
This commit is contained in:
parent
3b5cf33cc0
commit
c1a7c441d2
@ -1,6 +1,6 @@
|
||||
# api/__init__.py
|
||||
|
||||
from flask import Flask, jsonify, request
|
||||
from flask import Flask, jsonify, request, render_template
|
||||
import logging
|
||||
from dotenv import load_dotenv
|
||||
from neo4j import GraphDatabase
|
||||
@ -54,5 +54,9 @@ def sitemap():
|
||||
})
|
||||
return jsonify(routes)
|
||||
|
||||
@app.route('/render_member')
|
||||
def render_member():
|
||||
return render_template('render_member.html')
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
||||
|
@ -5,9 +5,10 @@ from app import get_driver, neo4j_logger
|
||||
|
||||
bp = Blueprint('list_members', __name__)
|
||||
|
||||
@bp.route('/list_members', methods=['GET'])
|
||||
@bp.route('/list_members', methods=['GET'])
|
||||
def list_members():
|
||||
member_name = request.form.get('member_name')
|
||||
member_name = request.args.get('member_name')
|
||||
|
||||
if not member_name:
|
||||
return jsonify({"error": "No member name provided"}), 400
|
||||
@ -18,31 +19,56 @@ def list_members():
|
||||
with driver.session() as session:
|
||||
result = session.run("""
|
||||
MATCH (m:Person {name: $memberName})-[*]-(n)
|
||||
RETURN m, n, collect(DISTINCT (m)-[r]->(n))
|
||||
WITH m, n, COLLECT(DISTINCT (m)-[r]->(n)) AS rels
|
||||
RETURN {
|
||||
nodes: [
|
||||
m,
|
||||
n
|
||||
],
|
||||
links: [
|
||||
UNWIND rels AS rel
|
||||
RETURN {
|
||||
source: startNode(rel).id,
|
||||
target: endNode(rel).id,
|
||||
type: type(rel)
|
||||
}
|
||||
]
|
||||
}
|
||||
""", memberName=member_name)
|
||||
|
||||
record = result.single()
|
||||
|
||||
if not record:
|
||||
return jsonify({"error": "No data found for the provided member name"}), 404
|
||||
|
||||
# Extract nodes and links from the returned record
|
||||
nodes_data = []
|
||||
links_data = []
|
||||
|
||||
nodes_record = record['nodes']
|
||||
links_record = record['links']
|
||||
|
||||
# Process nodes
|
||||
for node in nodes_record:
|
||||
nodes_data.append({
|
||||
"id": node.id,
|
||||
"label": list(node.labels)[0] if node.labels else "",
|
||||
"name": node.get("name", "")
|
||||
})
|
||||
|
||||
# Process links
|
||||
for link in links_record:
|
||||
links_data.append({
|
||||
"source": link['source'],
|
||||
"target": link['target'],
|
||||
"type": link['type']
|
||||
})
|
||||
|
||||
data = {
|
||||
"nodes": [],
|
||||
"links": []
|
||||
"nodes": nodes_data,
|
||||
"links": links_data
|
||||
}
|
||||
|
||||
for record in result:
|
||||
node1 = record["m"]
|
||||
nodes = [record["n"]]
|
||||
|
||||
# Add the first node
|
||||
if {"id": node1.id, "label": node1.labels[0], "name": node1.get("name")} not in data["nodes"]:
|
||||
data["nodes"].append({"id": node1.id, "label": node1.labels[0], "name": node1.get("name")})
|
||||
|
||||
# Add other nodes and links
|
||||
for node2 in nodes:
|
||||
if {"id": node2.id, "label": node2.labels[0], "name": node2.get("name")} not in data["nodes"]:
|
||||
data["nodes"].append({"id": node2.id, "label": node2.labels[0], "name": node2.get("name")})
|
||||
|
||||
for rel in record[2]:
|
||||
if {"source": rel.start_node.id, "target": rel.end_node.id, "type": rel.type} not in data["links"]:
|
||||
data["links"].append({"source": rel.start_node.id, "target": rel.end_node.id, "type": rel.type})
|
||||
|
||||
return jsonify(data)
|
||||
|
||||
except Exception as e:
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
<script>
|
||||
// Fetch member names from Neo4j
|
||||
fetch('/list_members/get_member_names')
|
||||
fetch('/get_member_names')
|
||||
.then(response => response.json())
|
||||
.then(members => {
|
||||
const select = document.getElementById('memberSelect');
|
||||
@ -42,7 +42,7 @@
|
||||
console.log("Member selected:", this.value); // Log the selected member name
|
||||
|
||||
const selectedMember = this.value;
|
||||
fetch(`/list_members/render_member?member_name=${encodeURIComponent(selectedMember)}`, {
|
||||
fetch(`/list_members?member_name=${encodeURIComponent(selectedMember)}`, {
|
||||
method: 'GET',
|
||||
})
|
||||
.then(response => response.json())
|
||||
|
Loading…
Reference in New Issue
Block a user