Compare commits

...

2 commits

Author SHA1 Message Date
Arnas Udovic
ecfd279d7e fix GetRandomNode 2025-03-16 21:22:31 +02:00
Arnas Udovic
c96da91077 Node.Get 2025-03-16 21:09:36 +02:00
4 changed files with 26 additions and 2 deletions

View file

@ -1,3 +1,11 @@
v1.0.7, released 2025-03-16
* bugfixes
- GetRandomNode public command
v1.0.6, released 2025-03-16
* features
- Node.Get - get object property value
v1.0.5, released 2025-03-16
* bugfixes
- FixType - run recursevily into child nodes to get correct value

View file

@ -25,6 +25,14 @@ Commands can be split into value layer when you know the structure and node laye
* GetNode - to get node. It can be object, list or value object. Returns false if not exist
* CreatNode - create list (director) to add many same objects (structure should be controlled by user) or single object. Parent Node should exist
* AddObject - add object to given list. Should assign abcex id
* Length - get length of list
* GetRandomNode - get random object from list
### Node as Object commands
* Node.Get - get object property value
* Node.GetNodes - get object properties
* Node.FixType - checks and sets object/list type
### helper commands

View file

@ -36,6 +36,14 @@ func (node *Node) GetNodes() map[string]Node {
return node.Nodes
}
func (node *Node) Get(key string) (string, error) {
if _, ok := node.Nodes[key]; ok {
return node.Nodes[key].Value, nil
}
return "", fmt.Errorf("Key not found")
}
func InitDB(root string) (DB, error) {
db := DB{Root: root}
err := db.Refresh()
@ -330,7 +338,7 @@ func (db *DB) Length(vpath string) (int64, error) {
return int64(len(node.Nodes)), nil
}
func (db *DB) getRandomNode(vpath string) (Node, error) {
func (db *DB) GetRandomNode(vpath string) (Node, error) {
node, found := db.GetNode(vpath)
if !found {
return Node{}, fmt.Errorf("Node not found")

View file

@ -266,7 +266,7 @@ func TestListRandomNode(t *testing.T) {
node, _ := db.GetNode("object.list3")
node.FixType()
node, _ = db.getRandomNode("object.list3")
node, _ = db.GetRandomNode("object.list3")
if node.Nodes["key"].Value != "value" {
fmt.Println(node)
t.Fatal("Random node value wrong")