// Copyright 2019-present Facebook Inc. All rights reserved. // This source code is licensed under the Apache 2.0 license found // in the LICENSE file in the root directory of this source tree. // Code generated by ent, DO NOT EDIT. package ent import ( "fmt" "strings" "time" "entgo.io/ent/dialect/gremlin" "entgo.io/ent/entc/integration/gremlin/ent/node" ) // Node is the model entity for the Node schema. type Node struct { config `json:"-"` // ID of the ent. ID string `json:"id,omitempty"` // Value holds the value of the "value" field. Value int `json:"value,omitempty"` // UpdatedAt holds the value of the "updated_at" field. UpdatedAt *time.Time `json:"updated_at,omitempty"` // Edges holds the relations/edges for other nodes in the graph. // The values are being populated by the NodeQuery when eager-loading is set. Edges NodeEdges `json:"edges"` } // NodeEdges holds the relations/edges for other nodes in the graph. type NodeEdges struct { // Prev holds the value of the prev edge. Prev *Node `json:"prev,omitempty" gqlgen:"prev"` // Next holds the value of the next edge. Next *Node `json:"next,omitempty" gqlgen:"next"` // loadedTypes holds the information for reporting if a // type was loaded (or requested) in eager-loading or not. loadedTypes [2]bool } // PrevOrErr returns the Prev value or an error if the edge // was not loaded in eager-loading, or loaded but was not found. func (e NodeEdges) PrevOrErr() (*Node, error) { if e.Prev != nil { return e.Prev, nil } else if e.loadedTypes[0] { return nil, &NotFoundError{label: node.Label} } return nil, &NotLoadedError{edge: "prev"} } // NextOrErr returns the Next value or an error if the edge // was not loaded in eager-loading, or loaded but was not found. func (e NodeEdges) NextOrErr() (*Node, error) { if e.Next != nil { return e.Next, nil } else if e.loadedTypes[1] { return nil, &NotFoundError{label: node.Label} } return nil, &NotLoadedError{edge: "next"} } // FromResponse scans the gremlin response data into Node. func (_m *Node) FromResponse(res *gremlin.Response) error { vmap, err := res.ReadValueMap() if err != nil { return err } var scan_m struct { ID string `json:"id,omitempty"` Value int `json:"value,omitempty"` UpdatedAt int64 `json:"updated_at,omitempty"` } if err := vmap.Decode(&scan_m); err != nil { return err } _m.ID = scan_m.ID _m.Value = scan_m.Value v1 := time.Unix(0, scan_m.UpdatedAt) _m.UpdatedAt = &v1 return nil } // QueryPrev queries the "prev" edge of the Node entity. func (_m *Node) QueryPrev() *NodeQuery { return NewNodeClient(_m.config).QueryPrev(_m) } // QueryNext queries the "next" edge of the Node entity. func (_m *Node) QueryNext() *NodeQuery { return NewNodeClient(_m.config).QueryNext(_m) } // Update returns a builder for updating this Node. // Note that you need to call Node.Unwrap() before calling this method if this Node // was returned from a transaction, and the transaction was committed or rolled back. func (_m *Node) Update() *NodeUpdateOne { return NewNodeClient(_m.config).UpdateOne(_m) } // Unwrap unwraps the Node entity that was returned from a transaction after it was closed, // so that all future queries will be executed through the driver which created the transaction. func (_m *Node) Unwrap() *Node { _tx, ok := _m.config.driver.(*txDriver) if !ok { panic("ent: Node is not a transactional entity") } _m.config.driver = _tx.drv return _m } // String implements the fmt.Stringer. func (_m *Node) String() string { var builder strings.Builder builder.WriteString("Node(") builder.WriteString(fmt.Sprintf("id=%v, ", _m.ID)) builder.WriteString("value=") builder.WriteString(fmt.Sprintf("%v", _m.Value)) builder.WriteString(", ") if v := _m.UpdatedAt; v != nil { builder.WriteString("updated_at=") builder.WriteString(v.Format(time.ANSIC)) } builder.WriteByte(')') return builder.String() } // Nodes is a parsable slice of Node. type Nodes []*Node // FromResponse scans the gremlin response data into Nodes. func (_m *Nodes) FromResponse(res *gremlin.Response) error { vmap, err := res.ReadValueMap() if err != nil { return err } var scan_m []struct { ID string `json:"id,omitempty"` Value int `json:"value,omitempty"` UpdatedAt int64 `json:"updated_at,omitempty"` } if err := vmap.Decode(&scan_m); err != nil { return err } for _, v := range scan_m { node := &Node{ID: v.ID} node.Value = v.Value v1 := time.Unix(0, v.UpdatedAt) node.UpdatedAt = &v1 *_m = append(*_m, node) } return nil }