github.com/codykaup/genqlient@v0.6.2/generate/testdata/snapshots/TestGenerate-PointersInline.graphql-PointersInline.graphql.go (about) 1 // Code generated by github.com/codykaup/genqlient, DO NOT EDIT. 2 3 package test 4 5 import ( 6 "encoding/json" 7 "fmt" 8 "time" 9 10 "github.com/codykaup/genqlient/graphql" 11 "github.com/codykaup/genqlient/internal/testutil" 12 ) 13 14 // PointersQueryOtherUser includes the requested fields of the GraphQL type User. 15 // The GraphQL type's documentation follows. 16 // 17 // A User is a user! 18 type PointersQueryOtherUser struct { 19 // id is the user's ID. 20 // 21 // It is stable, unique, and opaque, like all good IDs. 22 Id testutil.ID `json:"id"` 23 } 24 25 // GetId returns PointersQueryOtherUser.Id, and is useful for accessing the field via an interface. 26 func (v *PointersQueryOtherUser) GetId() testutil.ID { return v.Id } 27 28 // PointersQueryResponse is returned by PointersQuery on success. 29 type PointersQueryResponse struct { 30 // user looks up a user by some stuff. 31 // 32 // See UserQueryInput for what stuff is supported. 33 // If query is null, returns the current user. 34 User *PointersQueryUser `json:"user"` 35 // user looks up a user by some stuff. 36 // 37 // See UserQueryInput for what stuff is supported. 38 // If query is null, returns the current user. 39 OtherUser *PointersQueryOtherUser `json:"otherUser"` 40 MaybeConvert time.Time `json:"maybeConvert"` 41 } 42 43 // GetUser returns PointersQueryResponse.User, and is useful for accessing the field via an interface. 44 func (v *PointersQueryResponse) GetUser() *PointersQueryUser { return v.User } 45 46 // GetOtherUser returns PointersQueryResponse.OtherUser, and is useful for accessing the field via an interface. 47 func (v *PointersQueryResponse) GetOtherUser() *PointersQueryOtherUser { return v.OtherUser } 48 49 // GetMaybeConvert returns PointersQueryResponse.MaybeConvert, and is useful for accessing the field via an interface. 50 func (v *PointersQueryResponse) GetMaybeConvert() time.Time { return v.MaybeConvert } 51 52 // PointersQueryUser includes the requested fields of the GraphQL type User. 53 // The GraphQL type's documentation follows. 54 // 55 // A User is a user! 56 type PointersQueryUser struct { 57 // id is the user's ID. 58 // 59 // It is stable, unique, and opaque, like all good IDs. 60 Id testutil.ID `json:"id"` 61 Roles []Role `json:"roles"` 62 Name *string `json:"name"` 63 Emails []*string `json:"emails"` 64 EmailsNoPtr []*string `json:"emailsNoPtr"` 65 } 66 67 // GetId returns PointersQueryUser.Id, and is useful for accessing the field via an interface. 68 func (v *PointersQueryUser) GetId() testutil.ID { return v.Id } 69 70 // GetRoles returns PointersQueryUser.Roles, and is useful for accessing the field via an interface. 71 func (v *PointersQueryUser) GetRoles() []Role { return v.Roles } 72 73 // GetName returns PointersQueryUser.Name, and is useful for accessing the field via an interface. 74 func (v *PointersQueryUser) GetName() *string { return v.Name } 75 76 // GetEmails returns PointersQueryUser.Emails, and is useful for accessing the field via an interface. 77 func (v *PointersQueryUser) GetEmails() []*string { return v.Emails } 78 79 // GetEmailsNoPtr returns PointersQueryUser.EmailsNoPtr, and is useful for accessing the field via an interface. 80 func (v *PointersQueryUser) GetEmailsNoPtr() []*string { return v.EmailsNoPtr } 81 82 // Role is a type a user may have. 83 type Role string 84 85 const ( 86 // What is a student? 87 // 88 // A student is primarily a person enrolled in a school or other educational institution and who is under learning with goals of acquiring knowledge, developing professions and achieving employment at desired field. In the broader sense, a student is anyone who applies themselves to the intensive intellectual engagement with some matter necessary to master it as part of some practical affair in which such mastery is basic or decisive. 89 // 90 // (from [Wikipedia](https://en.wikipedia.org/wiki/Student)) 91 RoleStudent Role = "STUDENT" 92 // Teacher is a teacher, who teaches the students. 93 RoleTeacher Role = "TEACHER" 94 ) 95 96 // UserQueryInput is the argument to Query.users. 97 // 98 // Ideally this would support anything and everything! 99 // Or maybe ideally it wouldn't. 100 // Really I'm just talking to make this documentation longer. 101 type UserQueryInput struct { 102 Email string `json:"email"` 103 Name string `json:"name"` 104 // id looks the user up by ID. It's a great way to look up users. 105 Id testutil.ID `json:"id"` 106 Role Role `json:"role"` 107 Names []string `json:"names"` 108 HasPokemon testutil.Pokemon `json:"hasPokemon"` 109 Birthdate time.Time `json:"-"` 110 } 111 112 // GetEmail returns UserQueryInput.Email, and is useful for accessing the field via an interface. 113 func (v *UserQueryInput) GetEmail() string { return v.Email } 114 115 // GetName returns UserQueryInput.Name, and is useful for accessing the field via an interface. 116 func (v *UserQueryInput) GetName() string { return v.Name } 117 118 // GetId returns UserQueryInput.Id, and is useful for accessing the field via an interface. 119 func (v *UserQueryInput) GetId() testutil.ID { return v.Id } 120 121 // GetRole returns UserQueryInput.Role, and is useful for accessing the field via an interface. 122 func (v *UserQueryInput) GetRole() Role { return v.Role } 123 124 // GetNames returns UserQueryInput.Names, and is useful for accessing the field via an interface. 125 func (v *UserQueryInput) GetNames() []string { return v.Names } 126 127 // GetHasPokemon returns UserQueryInput.HasPokemon, and is useful for accessing the field via an interface. 128 func (v *UserQueryInput) GetHasPokemon() testutil.Pokemon { return v.HasPokemon } 129 130 // GetBirthdate returns UserQueryInput.Birthdate, and is useful for accessing the field via an interface. 131 func (v *UserQueryInput) GetBirthdate() time.Time { return v.Birthdate } 132 133 func (v *UserQueryInput) UnmarshalJSON(b []byte) error { 134 135 if string(b) == "null" { 136 return nil 137 } 138 139 var firstPass struct { 140 *UserQueryInput 141 Birthdate json.RawMessage `json:"birthdate"` 142 graphql.NoUnmarshalJSON 143 } 144 firstPass.UserQueryInput = v 145 146 err := json.Unmarshal(b, &firstPass) 147 if err != nil { 148 return err 149 } 150 151 { 152 dst := &v.Birthdate 153 src := firstPass.Birthdate 154 if len(src) != 0 && string(src) != "null" { 155 err = testutil.UnmarshalDate( 156 src, dst) 157 if err != nil { 158 return fmt.Errorf( 159 "unable to unmarshal UserQueryInput.Birthdate: %w", err) 160 } 161 } 162 } 163 return nil 164 } 165 166 type __premarshalUserQueryInput struct { 167 Email string `json:"email"` 168 169 Name string `json:"name"` 170 171 Id testutil.ID `json:"id"` 172 173 Role Role `json:"role"` 174 175 Names []string `json:"names"` 176 177 HasPokemon testutil.Pokemon `json:"hasPokemon"` 178 179 Birthdate json.RawMessage `json:"birthdate"` 180 } 181 182 func (v *UserQueryInput) MarshalJSON() ([]byte, error) { 183 premarshaled, err := v.__premarshalJSON() 184 if err != nil { 185 return nil, err 186 } 187 return json.Marshal(premarshaled) 188 } 189 190 func (v *UserQueryInput) __premarshalJSON() (*__premarshalUserQueryInput, error) { 191 var retval __premarshalUserQueryInput 192 193 retval.Email = v.Email 194 retval.Name = v.Name 195 retval.Id = v.Id 196 retval.Role = v.Role 197 retval.Names = v.Names 198 retval.HasPokemon = v.HasPokemon 199 { 200 201 dst := &retval.Birthdate 202 src := v.Birthdate 203 var err error 204 *dst, err = testutil.MarshalDate( 205 &src) 206 if err != nil { 207 return nil, fmt.Errorf( 208 "unable to marshal UserQueryInput.Birthdate: %w", err) 209 } 210 } 211 return &retval, nil 212 } 213 214 // __PointersQueryInput is used internally by genqlient 215 type __PointersQueryInput struct { 216 Query *UserQueryInput `json:"query"` 217 Dt *time.Time `json:"dt"` 218 Tz string `json:"tz"` 219 } 220 221 // GetQuery returns __PointersQueryInput.Query, and is useful for accessing the field via an interface. 222 func (v *__PointersQueryInput) GetQuery() *UserQueryInput { return v.Query } 223 224 // GetDt returns __PointersQueryInput.Dt, and is useful for accessing the field via an interface. 225 func (v *__PointersQueryInput) GetDt() *time.Time { return v.Dt } 226 227 // GetTz returns __PointersQueryInput.Tz, and is useful for accessing the field via an interface. 228 func (v *__PointersQueryInput) GetTz() string { return v.Tz } 229 230 // The query or mutation executed by PointersQuery. 231 const PointersQuery_Operation = ` 232 query PointersQuery ($query: UserQueryInput, $dt: DateTime, $tz: String) { 233 user(query: $query) { 234 id 235 roles 236 name 237 emails 238 emailsNoPtr: emails 239 } 240 otherUser: user(query: $query) { 241 id 242 } 243 maybeConvert(dt: $dt, tz: $tz) 244 } 245 ` 246 247 func PointersQuery( 248 client_ graphql.Client, 249 query *UserQueryInput, 250 dt *time.Time, 251 tz string, 252 ) (*PointersQueryResponse, error) { 253 req_ := &graphql.Request{ 254 OpName: "PointersQuery", 255 Query: PointersQuery_Operation, 256 Variables: &__PointersQueryInput{ 257 Query: query, 258 Dt: dt, 259 Tz: tz, 260 }, 261 } 262 var err_ error 263 264 var data_ PointersQueryResponse 265 resp_ := &graphql.Response{Data: &data_} 266 267 err_ = client_.MakeRequest( 268 nil, 269 req_, 270 resp_, 271 ) 272 273 return &data_, err_ 274 } 275