mirror of
https://github.com/ent/ent.git
synced 2026-05-24 09:31:56 +03:00
entc/gen: adding singular variants of select query finishers (#594)
Signed-off-by: Alex Snast <alexsn@fb.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user