File size: 1,000 Bytes
595350e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import os
import requests
import json
from dotenv import load_dotenv

load_dotenv()

ARCADE_USER = os.getenv("ARCADE_USER", "root")
ARCADE_PASS = os.getenv("ARCADE_PASSWORD")
ARCADE_DB = os.getenv("ARCADE_DB", "BhashyamDB")
ARCADE_HOST = os.getenv("ARCADE_HOST")
ARCADE_URL = f"http://{ARCADE_HOST}:2480/api/v1/command/{ARCADE_DB}"
AUTH = (ARCADE_USER, ARCADE_PASS)

def run_cypher(query, params=None):
    payload = {"language": "opencypher", "command": query, "params": params or {}}
    response = requests.post(ARCADE_URL, json=payload, auth=AUTH)
    return response.json().get("result", [])

if __name__ == "__main__":
    # Test verse
    gid = "divya_prabandham_1318"
    query = """
    MATCH (v:Verse {global_id: $gid})
    OPTIONAL MATCH (v)-[:IN_CHAPTER|PART_OF*1..3]->(p)
    WHERE NOT labels(p) = 'Scripture'
    RETURN v, collect({props: properties(p), labels: labels(p), type: p.type}) as context
    """
    res = run_cypher(query, {"gid": gid})
    print(json.dumps(res, indent=2))