func getEdge()

in gdbclient/internal/graphsonv3/graphreader.go [370:396]


func getEdge(r *result) (interface{}, error) {
	v := &edgeV3{}
	err := json.Unmarshal(r.Value, v)
	if err != nil {
		return nil, internal.NewDeserializerError("edge", r.Value, err)
	}

	inVertex := graph.NewDetachedVertex(graph.NewDetachedElement(v.InV, v.InVLabel))
	outVertex := graph.NewDetachedVertex(graph.NewDetachedElement(v.OutV, v.OutVLabel))

	edge := graph.NewDetachedEdge(graph.NewDetachedElement(v.Id, v.Label))
	edge.SetVertex(true, outVertex)
	edge.SetVertex(false, inVertex)

	for _, prop := range v.Properties {
		p, err := getProperty(&prop)
		if err != nil {
			return nil, err
		}

		if pp, ok := p.(*graph.DetachedProperty); ok {
			edge.AddProperty(pp)
		}
	}

	return edge, nil
}