entc/gen: adding singular variants of select query finishers (#594)

Signed-off-by: Alex Snast <alexsn@fb.com>
This commit is contained in:
Alex Snast
2020-07-09 10:59:33 +03:00
committed by GitHub
parent 720766432a
commit 7b34abd8b4
68 changed files with 13611 additions and 21 deletions

View File

@@ -9,6 +9,7 @@ package ent
import (
"context"
"errors"
"fmt"
"math"
"github.com/facebookincubator/ent/dialect/gremlin"
@@ -464,6 +465,32 @@ func (ngb *NodeGroupBy) StringsX(ctx context.Context) []string {
return v
}
// String returns a single string from group-by. It is only allowed when querying group-by with one field.
func (ngb *NodeGroupBy) String(ctx context.Context) (_ string, err error) {
var v []string
if v, err = ngb.Strings(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeGroupBy.Strings returned %d results when one was expected", len(v))
}
return
}
// StringX is like String, but panics if an error occurs.
func (ngb *NodeGroupBy) StringX(ctx context.Context) string {
v, err := ngb.String(ctx)
if err != nil {
panic(err)
}
return v
}
// Ints returns list of ints from group-by. It is only allowed when querying group-by with one field.
func (ngb *NodeGroupBy) Ints(ctx context.Context) ([]int, error) {
if len(ngb.fields) > 1 {
@@ -485,6 +512,32 @@ func (ngb *NodeGroupBy) IntsX(ctx context.Context) []int {
return v
}
// Int returns a single int from group-by. It is only allowed when querying group-by with one field.
func (ngb *NodeGroupBy) Int(ctx context.Context) (_ int, err error) {
var v []int
if v, err = ngb.Ints(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeGroupBy.Ints returned %d results when one was expected", len(v))
}
return
}
// IntX is like Int, but panics if an error occurs.
func (ngb *NodeGroupBy) IntX(ctx context.Context) int {
v, err := ngb.Int(ctx)
if err != nil {
panic(err)
}
return v
}
// Float64s returns list of float64s from group-by. It is only allowed when querying group-by with one field.
func (ngb *NodeGroupBy) Float64s(ctx context.Context) ([]float64, error) {
if len(ngb.fields) > 1 {
@@ -506,6 +559,32 @@ func (ngb *NodeGroupBy) Float64sX(ctx context.Context) []float64 {
return v
}
// Float64 returns a single float64 from group-by. It is only allowed when querying group-by with one field.
func (ngb *NodeGroupBy) Float64(ctx context.Context) (_ float64, err error) {
var v []float64
if v, err = ngb.Float64s(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeGroupBy.Float64s returned %d results when one was expected", len(v))
}
return
}
// Float64X is like Float64, but panics if an error occurs.
func (ngb *NodeGroupBy) Float64X(ctx context.Context) float64 {
v, err := ngb.Float64(ctx)
if err != nil {
panic(err)
}
return v
}
// Bools returns list of bools from group-by. It is only allowed when querying group-by with one field.
func (ngb *NodeGroupBy) Bools(ctx context.Context) ([]bool, error) {
if len(ngb.fields) > 1 {
@@ -527,6 +606,32 @@ func (ngb *NodeGroupBy) BoolsX(ctx context.Context) []bool {
return v
}
// Bool returns a single bool from group-by. It is only allowed when querying group-by with one field.
func (ngb *NodeGroupBy) Bool(ctx context.Context) (_ bool, err error) {
var v []bool
if v, err = ngb.Bools(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeGroupBy.Bools returned %d results when one was expected", len(v))
}
return
}
// BoolX is like Bool, but panics if an error occurs.
func (ngb *NodeGroupBy) BoolX(ctx context.Context) bool {
v, err := ngb.Bool(ctx)
if err != nil {
panic(err)
}
return v
}
func (ngb *NodeGroupBy) gremlinScan(ctx context.Context, v interface{}) error {
res := &gremlin.Response{}
query, bindings := ngb.gremlinQuery().Query()
@@ -611,6 +716,32 @@ func (ns *NodeSelect) StringsX(ctx context.Context) []string {
return v
}
// String returns a single string from selector. It is only allowed when selecting one field.
func (ns *NodeSelect) String(ctx context.Context) (_ string, err error) {
var v []string
if v, err = ns.Strings(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeSelect.Strings returned %d results when one was expected", len(v))
}
return
}
// StringX is like String, but panics if an error occurs.
func (ns *NodeSelect) StringX(ctx context.Context) string {
v, err := ns.String(ctx)
if err != nil {
panic(err)
}
return v
}
// Ints returns list of ints from selector. It is only allowed when selecting one field.
func (ns *NodeSelect) Ints(ctx context.Context) ([]int, error) {
if len(ns.fields) > 1 {
@@ -632,6 +763,32 @@ func (ns *NodeSelect) IntsX(ctx context.Context) []int {
return v
}
// Int returns a single int from selector. It is only allowed when selecting one field.
func (ns *NodeSelect) Int(ctx context.Context) (_ int, err error) {
var v []int
if v, err = ns.Ints(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeSelect.Ints returned %d results when one was expected", len(v))
}
return
}
// IntX is like Int, but panics if an error occurs.
func (ns *NodeSelect) IntX(ctx context.Context) int {
v, err := ns.Int(ctx)
if err != nil {
panic(err)
}
return v
}
// Float64s returns list of float64s from selector. It is only allowed when selecting one field.
func (ns *NodeSelect) Float64s(ctx context.Context) ([]float64, error) {
if len(ns.fields) > 1 {
@@ -653,6 +810,32 @@ func (ns *NodeSelect) Float64sX(ctx context.Context) []float64 {
return v
}
// Float64 returns a single float64 from selector. It is only allowed when selecting one field.
func (ns *NodeSelect) Float64(ctx context.Context) (_ float64, err error) {
var v []float64
if v, err = ns.Float64s(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeSelect.Float64s returned %d results when one was expected", len(v))
}
return
}
// Float64X is like Float64, but panics if an error occurs.
func (ns *NodeSelect) Float64X(ctx context.Context) float64 {
v, err := ns.Float64(ctx)
if err != nil {
panic(err)
}
return v
}
// Bools returns list of bools from selector. It is only allowed when selecting one field.
func (ns *NodeSelect) Bools(ctx context.Context) ([]bool, error) {
if len(ns.fields) > 1 {
@@ -674,6 +857,32 @@ func (ns *NodeSelect) BoolsX(ctx context.Context) []bool {
return v
}
// Bool returns a single bool from selector. It is only allowed when selecting one field.
func (ns *NodeSelect) Bool(ctx context.Context) (_ bool, err error) {
var v []bool
if v, err = ns.Bools(ctx); err != nil {
return
}
switch len(v) {
case 1:
return v[0], nil
case 0:
err = &NotFoundError{node.Label}
default:
err = fmt.Errorf("ent: NodeSelect.Bools returned %d results when one was expected", len(v))
}
return
}
// BoolX is like Bool, but panics if an error occurs.
func (ns *NodeSelect) BoolX(ctx context.Context) bool {
v, err := ns.Bool(ctx)
if err != nil {
panic(err)
}
return v
}
func (ns *NodeSelect) gremlinScan(ctx context.Context, v interface{}) error {
var (
traversal *dsl.Traversal