add option to force using a pointer
This commit is contained in:
+3
@@ -3,9 +3,12 @@ query OmitEmptyQuery(
|
||||
$query: UserQueryInput,
|
||||
$dt: DateTime,
|
||||
$tz: String,
|
||||
# @genqlient(omitempty: false)
|
||||
$tzNoOmitEmpty: String,
|
||||
) {
|
||||
user(query: $query) {
|
||||
id
|
||||
}
|
||||
maybeConvert(dt: $dt, tz: $tz)
|
||||
convert2: maybeConvert(dt: $dt, tz: $tzNoOmitEmpty)
|
||||
}
|
||||
|
||||
+8
-19
@@ -12,6 +12,7 @@ import (
|
||||
type OmitEmptyQueryResponse struct {
|
||||
User OmitEmptyQueryUser `json:"user"`
|
||||
MaybeConvert time.Time `json:"maybeConvert"`
|
||||
Convert2 time.Time `json:"convert2"`
|
||||
}
|
||||
|
||||
type OmitEmptyQueryUser struct {
|
||||
@@ -38,26 +39,13 @@ func OmitEmptyQuery(
|
||||
query UserQueryInput,
|
||||
dt time.Time,
|
||||
tz string,
|
||||
tzNoOmitEmpty string,
|
||||
) (*OmitEmptyQueryResponse, error) {
|
||||
variables := map[string]interface{}{
|
||||
"query": nil,
|
||||
"dt": nil,
|
||||
"tz": nil,
|
||||
}
|
||||
|
||||
var zero_query UserQueryInput
|
||||
if query != zero_query {
|
||||
variables["query"] = query
|
||||
}
|
||||
|
||||
var zero_dt time.Time
|
||||
if dt != zero_dt {
|
||||
variables["dt"] = dt
|
||||
}
|
||||
|
||||
var zero_tz string
|
||||
if tz != zero_tz {
|
||||
variables["tz"] = tz
|
||||
"query": query,
|
||||
"dt": dt,
|
||||
"tz": tz,
|
||||
"tzNoOmitEmpty": tzNoOmitEmpty,
|
||||
}
|
||||
|
||||
var retval OmitEmptyQueryResponse
|
||||
@@ -65,11 +53,12 @@ func OmitEmptyQuery(
|
||||
nil,
|
||||
"OmitEmptyQuery",
|
||||
`
|
||||
query OmitEmptyQuery ($query: UserQueryInput, $dt: DateTime, $tz: String) {
|
||||
query OmitEmptyQuery ($query: UserQueryInput, $dt: DateTime, $tz: String, $tzNoOmitEmpty: String) {
|
||||
user(query: $query) {
|
||||
id
|
||||
}
|
||||
maybeConvert(dt: $dt, tz: $tz)
|
||||
convert2: maybeConvert(dt: $dt, tz: $tzNoOmitEmpty)
|
||||
}
|
||||
`,
|
||||
&retval,
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
"operations": [
|
||||
{
|
||||
"operationName": "OmitEmptyQuery",
|
||||
"query": "\nquery OmitEmptyQuery ($query: UserQueryInput, $dt: DateTime, $tz: String) {\n\tuser(query: $query) {\n\t\tid\n\t}\n\tmaybeConvert(dt: $dt, tz: $tz)\n}\n",
|
||||
"query": "\nquery OmitEmptyQuery ($query: UserQueryInput, $dt: DateTime, $tz: String, $tzNoOmitEmpty: String) {\n\tuser(query: $query) {\n\t\tid\n\t}\n\tmaybeConvert(dt: $dt, tz: $tz)\n\tconvert2: maybeConvert(dt: $dt, tz: $tzNoOmitEmpty)\n}\n",
|
||||
"sourceLocation": "testdata/queries/Omitempty.graphql"
|
||||
}
|
||||
]
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
# @genqlient(pointer: true)
|
||||
query PointersQuery(
|
||||
$query: UserQueryInput,
|
||||
# @genqlient(pointer: false)
|
||||
$dt: DateTime,
|
||||
$tz: String,
|
||||
) {
|
||||
user(query: $query) {
|
||||
id
|
||||
roles
|
||||
name
|
||||
emails
|
||||
# @genqlient(pointer: false)
|
||||
emailsNoPtr: emails
|
||||
}
|
||||
otherUser: user(query: $query) {
|
||||
id
|
||||
}
|
||||
maybeConvert(dt: $dt, tz: $tz)
|
||||
}
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
package test
|
||||
|
||||
// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/Khan/genqlient/graphql"
|
||||
"github.com/me/mypkg"
|
||||
)
|
||||
|
||||
type PointersQueryOtherUser struct {
|
||||
Id *mypkg.ID `json:"id"`
|
||||
}
|
||||
|
||||
type PointersQueryResponse struct {
|
||||
User *PointersQueryUser `json:"user"`
|
||||
OtherUser *PointersQueryOtherUser `json:"otherUser"`
|
||||
MaybeConvert *time.Time `json:"maybeConvert"`
|
||||
}
|
||||
|
||||
type PointersQueryUser struct {
|
||||
Id *mypkg.ID `json:"id"`
|
||||
Roles []*Role `json:"roles"`
|
||||
Name *string `json:"name"`
|
||||
Emails []*string `json:"emails"`
|
||||
EmailsNoPtr []string `json:"emailsNoPtr"`
|
||||
}
|
||||
|
||||
type Role string
|
||||
|
||||
const (
|
||||
RoleStudent Role = "STUDENT"
|
||||
RoleTeacher Role = "TEACHER"
|
||||
)
|
||||
|
||||
type UserQueryInput struct {
|
||||
Email *string `json:"email"`
|
||||
Name *string `json:"name"`
|
||||
Id *mypkg.ID `json:"id"`
|
||||
Role *Role `json:"role"`
|
||||
Names []*string `json:"names"`
|
||||
}
|
||||
|
||||
func PointersQuery(
|
||||
client graphql.Client,
|
||||
query UserQueryInput,
|
||||
dt time.Time,
|
||||
tz string,
|
||||
) (*PointersQueryResponse, error) {
|
||||
variables := map[string]interface{}{
|
||||
"query": query,
|
||||
"dt": dt,
|
||||
"tz": tz,
|
||||
}
|
||||
|
||||
var retval PointersQueryResponse
|
||||
err := client.MakeRequest(
|
||||
nil,
|
||||
"PointersQuery",
|
||||
`
|
||||
query PointersQuery ($query: UserQueryInput, $dt: DateTime, $tz: String) {
|
||||
user(query: $query) {
|
||||
id
|
||||
roles
|
||||
name
|
||||
emails
|
||||
emailsNoPtr: emails
|
||||
}
|
||||
otherUser: user(query: $query) {
|
||||
id
|
||||
}
|
||||
maybeConvert(dt: $dt, tz: $tz)
|
||||
}
|
||||
`,
|
||||
&retval,
|
||||
variables,
|
||||
)
|
||||
return &retval, err
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"operations": [
|
||||
{
|
||||
"operationName": "PointersQuery",
|
||||
"query": "\nquery PointersQuery ($query: UserQueryInput, $dt: DateTime, $tz: String) {\n\tuser(query: $query) {\n\t\tid\n\t\troles\n\t\tname\n\t\temails\n\t\temailsNoPtr: emails\n\t}\n\totherUser: user(query: $query) {\n\t\tid\n\t}\n\tmaybeConvert(dt: $dt, tz: $tz)\n}\n",
|
||||
"sourceLocation": "testdata/queries/Pointers.graphql"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
query PointersQuery(
|
||||
# @genqlient(pointer: true)
|
||||
$query: UserQueryInput,
|
||||
# @genqlient(pointer: true)
|
||||
$dt: DateTime,
|
||||
$tz: String,
|
||||
) {
|
||||
# @genqlient(pointer: true)
|
||||
user(query: $query) {
|
||||
id
|
||||
roles
|
||||
# @genqlient(pointer: true)
|
||||
name
|
||||
# @genqlient(pointer: true)
|
||||
emails
|
||||
# @genqlient(pointer: true)
|
||||
emailsNoPtr: emails
|
||||
}
|
||||
# @genqlient(pointer: true)
|
||||
otherUser: user(query: $query) {
|
||||
id
|
||||
}
|
||||
maybeConvert(dt: $dt, tz: $tz)
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package test
|
||||
|
||||
// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/Khan/genqlient/graphql"
|
||||
"github.com/me/mypkg"
|
||||
)
|
||||
|
||||
type PointersQueryOtherUser struct {
|
||||
Id mypkg.ID `json:"id"`
|
||||
}
|
||||
|
||||
type PointersQueryResponse struct {
|
||||
User *PointersQueryUser `json:"user"`
|
||||
OtherUser *PointersQueryOtherUser `json:"otherUser"`
|
||||
MaybeConvert time.Time `json:"maybeConvert"`
|
||||
}
|
||||
|
||||
type PointersQueryUser struct {
|
||||
Id mypkg.ID `json:"id"`
|
||||
Roles []Role `json:"roles"`
|
||||
Name *string `json:"name"`
|
||||
Emails []*string `json:"emails"`
|
||||
EmailsNoPtr []*string `json:"emailsNoPtr"`
|
||||
}
|
||||
|
||||
type Role string
|
||||
|
||||
const (
|
||||
RoleStudent Role = "STUDENT"
|
||||
RoleTeacher Role = "TEACHER"
|
||||
)
|
||||
|
||||
type UserQueryInput struct {
|
||||
Email string `json:"email"`
|
||||
Name string `json:"name"`
|
||||
Id mypkg.ID `json:"id"`
|
||||
Role Role `json:"role"`
|
||||
Names []string `json:"names"`
|
||||
}
|
||||
|
||||
func PointersQuery(
|
||||
client graphql.Client,
|
||||
query *UserQueryInput,
|
||||
dt *time.Time,
|
||||
tz string,
|
||||
) (*PointersQueryResponse, error) {
|
||||
variables := map[string]interface{}{
|
||||
"query": query,
|
||||
"dt": dt,
|
||||
"tz": tz,
|
||||
}
|
||||
|
||||
var retval PointersQueryResponse
|
||||
err := client.MakeRequest(
|
||||
nil,
|
||||
"PointersQuery",
|
||||
`
|
||||
query PointersQuery ($query: UserQueryInput, $dt: DateTime, $tz: String) {
|
||||
user(query: $query) {
|
||||
id
|
||||
roles
|
||||
name
|
||||
emails
|
||||
emailsNoPtr: emails
|
||||
}
|
||||
otherUser: user(query: $query) {
|
||||
id
|
||||
}
|
||||
maybeConvert(dt: $dt, tz: $tz)
|
||||
}
|
||||
`,
|
||||
&retval,
|
||||
variables,
|
||||
)
|
||||
return &retval, err
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"operations": [
|
||||
{
|
||||
"operationName": "PointersQuery",
|
||||
"query": "\nquery PointersQuery ($query: UserQueryInput, $dt: DateTime, $tz: String) {\n\tuser(query: $query) {\n\t\tid\n\t\troles\n\t\tname\n\t\temails\n\t\temailsNoPtr: emails\n\t}\n\totherUser: user(query: $query) {\n\t\tid\n\t}\n\tmaybeConvert(dt: $dt, tz: $tz)\n}\n",
|
||||
"sourceLocation": "testdata/queries/PointersInline.graphql"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user