This repository was archived by the owner on May 25, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathsplitwise.py
More file actions
73 lines (57 loc) · 1.43 KB
/
Copy pathsplitwise.py
File metadata and controls
73 lines (57 loc) · 1.43 KB
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import os
from dotenv import load_dotenv
from neo4j import GraphDatabase
load_dotenv() # loads .env into environment variables
NEO4J_URI = os.getenv("NEO4J_URI")
NEO4J_USER = os.getenv("NEO4J_USER")
NEO4J_PASSWORD = os.getenv("NEO4J_PASSWORD")
driver = GraphDatabase.driver(
NEO4J_URI,
auth=(NEO4J_USER, NEO4J_PASSWORD),
)
driver.verify_connectivity()
cypher1="""
MERGE (p:Person{name:$name,credit:$credit,debit:$debit,email:$email})
"""
params1={
"name":"Prachi",
"credit":"200",
"debit":"100",
"email":"prachi@gmail.com"
}
params2={
"name":"Prisha",
"credit":"300",
"debit":"100",
"email":"prisha@gmail.com"
}
records, summary, keys = driver.execute_query(cypher1,params1)
records, summary, keys = driver.execute_query(cypher1,params2)
params1_net=int(params1["credit"])-int(params1["debit"])
params2_net=int(params2["credit"])-int(params2["debit"])
if params1_net > params2_net:
amount = params1_net - params2_net
from_=params2['email']
to_=params1['email']
elif params2_net > params1_net:
amount = params2_net - params1_net
from_=params1['email']
to_=params2['email']
else:
amount = 0
from_=None
to_=None
if amount>0:
cypher="""
MATCH (p:Person{email:$from})
MATCH(q:Person{email:$to})
MERGE (p)-[t:TRANSACTION]->(q)
SET t.amount = $amount
"""
params={
"from":from_,
"to":to_,
"amount":amount
}
print(params)
records, summary, keys = driver.execute_query(cypher,params)