Init data (binary tree)
{ "open": { "database": "student", "login": "init", "password": "qwerty"}}
{ "root": { "secret": "qwerty", "newpassword": "asd", "data": "IAMBOSS", "emp":0} }
{ "new": { "admin": 0, "passwd": "asd", "data":"lvl1", "newpasswd":"asd", "emp1":0, "emp":1 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"lvl1", "newpasswd":"asd", "emp1":0, "emp":2 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"lvl2", "newpasswd":"asd", "emp1":1, "emp":3 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"lvl2", "newpasswd":"asd", "emp1":1, "emp":4 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"lvl2", "newpasswd":"asd", "emp1":2, "emp":5 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"lvl2", "newpasswd":"asd", "emp1":2, "emp":6 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"lvl3", "newpasswd":"asd", "emp1":3, "emp":7 } }
{ "new": { "admin": 0, "passwd": "asd", "newpasswd":"asd", "emp1":3, "emp":8 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"no passwd", "emp1":3, "emp":8 } }
{ "new": { "admin": 0, "passwd": "asd", "data":"I have no parents", "newpasswd": "asd", "emp1":-1, "emp": -10}}
result: 8x {"status": "OK"}
, 2x `{"status": "ERROR"}
Tree structure:
0
/ \
1 2 --- lvl1
/ \ / \
3 4 5 6 --- lvl2
/\
7 8 --- lvl3
2nd run:
{"open": {"database": "student", "login": "app", "password": "qwerty"}}
{"child": {"admin": 7, "passwd":"asd", "emp":0}}
{"parent": {"admin": 8, "passwd":"asd", "emp":6}}
{"ancestors": {"admin": 5, "passwd":"asd", "emp": 8}}
{"ancestor": {"admin": 5, "passwd": "asd", "emp1":7, "emp2": 1}}
{"ancestor": {"admin": 5, "passwd": "asd", "emp1":1, "emp2": 7}}
{"update": {"admin": 3, "passwd": "asd", "emp":8, "newdata":"lvl3update"}}
{"read": {"admin": 1, "passwd": "asd", "emp":8}}
{"new": {"admin": 2, "newpasswd":"asd", "data":"lvl3new", "passwd":"asd", "emp1":6, "emp":9}}
{"child": {"admin": 6, "passwd": "asd", "emp":6}}
{"remove": {"admin":0, "passwd":"asd", "emp": 2}}
{"child": {"admin": 7, "passwd":"asd", "emp":0}}
{"descendants": {"admin": 8, "passwd":"asd", "emp":0}}
expected result:
{"status": "OK"}
{"status": "OK", "data": [1, 2]}
{"status": "OK", "data": 2}
{"status": "OK", "data": [0, 1, 3]}
{"status": "OK", "data": true}
{"status": "OK", "data": false}
{"status": "OK"}
{"status": "OK", "data": "lvl3update"}
{"status": "OK"}
{"status": "OK", "data": [9]}
{"status": "OK"}
{"status": "OK", "data": [1]}
{"status": "OK", "data": [1, 3, 4, 7, 8]}
2nd run - errors only
{"open": {"database": "student", "login": "app", "password": "qwerty"}}
{"remove": {"admin":1, "passwd":"asd", "emp": 0}}
{"remove": {"admin":0, "passwd":"asd", "emp": -666}}
{"child": {"admin":0, "passwd":"asd", "emp":-666}}
{"parent": {"admin":0, "passwd":"asd", "emp":-666}}
{"ancestors": {"admin": 0, "passwd":"asd", "emp": -666}}
{"descendants": {"admin": 0, "passwd":"asd", "emp":-666}}
{"ancestor": {"admin":0, "passwd":"asd", "emp1": 0, "emp2": -666}}
{"ancestor": {"admin":0, "passwd":"asd", "emp1": -666, "emp2": 0}}
{"read": {"admin":0, "passwd":"asd", "emp":-666}}
{"update": {"admin":0, "passwd":"asd", "emp":-777, "newdata":"ups"}}