cmdb/internal/arangodb/vertex/create.go
2023-01-25 13:40:44 +03:00

38 lines
765 B
Go

// Copyright 2022 Listware
package vertex
import (
"context"
"encoding/json"
"git.fg-tech.ru/listware/cmdb/internal/arangodb"
driver "github.com/arangodb/go-driver"
)
func Create(ctx context.Context, client driver.Client, name string, payload any) (meta driver.DocumentMeta, resp map[string]any, err error) {
graph, err := arangodb.Graph(ctx, client)
if err != nil {
return
}
collection, err := graph.VertexCollection(ctx, name)
if err != nil {
return
}
ctx = driver.WithReturnNew(ctx, &resp)
if b, ok := payload.([]byte); ok {
var req map[string]any
if err = json.Unmarshal(b, &req); err != nil {
return
}
meta, err = collection.CreateDocument(ctx, req)
return
}
meta, err = collection.CreateDocument(ctx, payload)
return
}