init {
accounts := {"001": {"name": "Alice", "age": 25, "address": "Kobe"},
"002": {"name": "Bob", "age": 25, "address": "Osaka"},
"003": {"name": "Carol", "age": 22, "address": "Kobe"},
"004": {"name": "Dave", "age": 25, "address": "Kobe"}
}
}
channel Signup {
out accounts(acDB:Map, signUp(aid:Str, name:Str, age:Int, address:Str)) = insert(acDB, aid, {"name": name, "age": age, "address": address})
}
channel ChangeName(aid:Str) {
out accounts.{aid}.name(n:Str, changeName(name:Str)) = name
}
channel Query {
out query(q:Json, enterQuery(age:Int, address:Str)) = {"age": age, "address": address}
}
channel SearchAccount {
in accounts(acDB:Map, searchAccount(acDB2, q2)) = acDB2
in query(q:Json, searchAccount(acDB2, q2)) = q2
out result(resultMap:Map, searchAccount(acDB2, q2)) = search(acDB2, q2)
}