cmdb/internal/arangodb/query/query.go

36 lines
692 B
Go
Raw Normal View History

2023-01-25 13:40:44 +03:00
// Copyright 2022 Listware
package query
import (
"context"
"git.fg-tech.ru/listware/cmdb/internal/arangodb"
driver "github.com/arangodb/go-driver"
)
func Query(ctx context.Context, client driver.Client, query string, vars map[string]any) (metas []driver.DocumentMeta, resp []map[string]any, err error) {
db, err := arangodb.Database(ctx, client)
if err != nil {
return
}
cursor, err := db.Query(ctx, query, vars)
if err != nil {
return
}
defer cursor.Close()
for cursor.HasMore() {
var obj map[string]any
meta, err := cursor.ReadDocument(ctx, &obj)
if err != nil {
return nil, nil, err
}
resp = append(resp, obj)
metas = append(metas, meta)
}
return
}