github.com/codykaup/genqlient@v0.6.2/generate/testdata/snapshots/TestGenerate-InterfaceNoFragments.graphql-InterfaceNoFragments.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 9 "github.com/codykaup/genqlient/graphql" 10 "github.com/codykaup/genqlient/internal/testutil" 11 ) 12 13 // InterfaceNoFragmentsQueryRandomItemArticle includes the requested fields of the GraphQL type Article. 14 type InterfaceNoFragmentsQueryRandomItemArticle struct { 15 Typename string `json:"__typename"` 16 // ID is the identifier of the content. 17 Id testutil.ID `json:"id"` 18 Name string `json:"name"` 19 } 20 21 // GetTypename returns InterfaceNoFragmentsQueryRandomItemArticle.Typename, and is useful for accessing the field via an interface. 22 func (v *InterfaceNoFragmentsQueryRandomItemArticle) GetTypename() string { return v.Typename } 23 24 // GetId returns InterfaceNoFragmentsQueryRandomItemArticle.Id, and is useful for accessing the field via an interface. 25 func (v *InterfaceNoFragmentsQueryRandomItemArticle) GetId() testutil.ID { return v.Id } 26 27 // GetName returns InterfaceNoFragmentsQueryRandomItemArticle.Name, and is useful for accessing the field via an interface. 28 func (v *InterfaceNoFragmentsQueryRandomItemArticle) GetName() string { return v.Name } 29 30 // InterfaceNoFragmentsQueryRandomItemContent includes the requested fields of the GraphQL interface Content. 31 // 32 // InterfaceNoFragmentsQueryRandomItemContent is implemented by the following types: 33 // InterfaceNoFragmentsQueryRandomItemArticle 34 // InterfaceNoFragmentsQueryRandomItemTopic 35 // InterfaceNoFragmentsQueryRandomItemVideo 36 // The GraphQL type's documentation follows. 37 // 38 // Content is implemented by various types like Article, Video, and Topic. 39 type InterfaceNoFragmentsQueryRandomItemContent interface { 40 implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemContent() 41 // GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values). 42 GetTypename() string 43 // GetId returns the interface-field "id" from its implementation. 44 // The GraphQL interface field's documentation follows. 45 // 46 // ID is the identifier of the content. 47 GetId() testutil.ID 48 // GetName returns the interface-field "name" from its implementation. 49 GetName() string 50 } 51 52 func (v *InterfaceNoFragmentsQueryRandomItemArticle) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemContent() { 53 } 54 func (v *InterfaceNoFragmentsQueryRandomItemTopic) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemContent() { 55 } 56 func (v *InterfaceNoFragmentsQueryRandomItemVideo) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemContent() { 57 } 58 59 func __unmarshalInterfaceNoFragmentsQueryRandomItemContent(b []byte, v *InterfaceNoFragmentsQueryRandomItemContent) error { 60 if string(b) == "null" { 61 return nil 62 } 63 64 var tn struct { 65 TypeName string `json:"__typename"` 66 } 67 err := json.Unmarshal(b, &tn) 68 if err != nil { 69 return err 70 } 71 72 switch tn.TypeName { 73 case "Article": 74 *v = new(InterfaceNoFragmentsQueryRandomItemArticle) 75 return json.Unmarshal(b, *v) 76 case "Topic": 77 *v = new(InterfaceNoFragmentsQueryRandomItemTopic) 78 return json.Unmarshal(b, *v) 79 case "Video": 80 *v = new(InterfaceNoFragmentsQueryRandomItemVideo) 81 return json.Unmarshal(b, *v) 82 case "": 83 return fmt.Errorf( 84 "response was missing Content.__typename") 85 default: 86 return fmt.Errorf( 87 `unexpected concrete type for InterfaceNoFragmentsQueryRandomItemContent: "%v"`, tn.TypeName) 88 } 89 } 90 91 func __marshalInterfaceNoFragmentsQueryRandomItemContent(v *InterfaceNoFragmentsQueryRandomItemContent) ([]byte, error) { 92 93 var typename string 94 switch v := (*v).(type) { 95 case *InterfaceNoFragmentsQueryRandomItemArticle: 96 typename = "Article" 97 98 result := struct { 99 TypeName string `json:"__typename"` 100 *InterfaceNoFragmentsQueryRandomItemArticle 101 }{typename, v} 102 return json.Marshal(result) 103 case *InterfaceNoFragmentsQueryRandomItemTopic: 104 typename = "Topic" 105 106 result := struct { 107 TypeName string `json:"__typename"` 108 *InterfaceNoFragmentsQueryRandomItemTopic 109 }{typename, v} 110 return json.Marshal(result) 111 case *InterfaceNoFragmentsQueryRandomItemVideo: 112 typename = "Video" 113 114 result := struct { 115 TypeName string `json:"__typename"` 116 *InterfaceNoFragmentsQueryRandomItemVideo 117 }{typename, v} 118 return json.Marshal(result) 119 case nil: 120 return []byte("null"), nil 121 default: 122 return nil, fmt.Errorf( 123 `unexpected concrete type for InterfaceNoFragmentsQueryRandomItemContent: "%T"`, v) 124 } 125 } 126 127 // InterfaceNoFragmentsQueryRandomItemTopic includes the requested fields of the GraphQL type Topic. 128 type InterfaceNoFragmentsQueryRandomItemTopic struct { 129 Typename string `json:"__typename"` 130 // ID is the identifier of the content. 131 Id testutil.ID `json:"id"` 132 Name string `json:"name"` 133 } 134 135 // GetTypename returns InterfaceNoFragmentsQueryRandomItemTopic.Typename, and is useful for accessing the field via an interface. 136 func (v *InterfaceNoFragmentsQueryRandomItemTopic) GetTypename() string { return v.Typename } 137 138 // GetId returns InterfaceNoFragmentsQueryRandomItemTopic.Id, and is useful for accessing the field via an interface. 139 func (v *InterfaceNoFragmentsQueryRandomItemTopic) GetId() testutil.ID { return v.Id } 140 141 // GetName returns InterfaceNoFragmentsQueryRandomItemTopic.Name, and is useful for accessing the field via an interface. 142 func (v *InterfaceNoFragmentsQueryRandomItemTopic) GetName() string { return v.Name } 143 144 // InterfaceNoFragmentsQueryRandomItemVideo includes the requested fields of the GraphQL type Video. 145 type InterfaceNoFragmentsQueryRandomItemVideo struct { 146 Typename string `json:"__typename"` 147 // ID is the identifier of the content. 148 Id testutil.ID `json:"id"` 149 Name string `json:"name"` 150 } 151 152 // GetTypename returns InterfaceNoFragmentsQueryRandomItemVideo.Typename, and is useful for accessing the field via an interface. 153 func (v *InterfaceNoFragmentsQueryRandomItemVideo) GetTypename() string { return v.Typename } 154 155 // GetId returns InterfaceNoFragmentsQueryRandomItemVideo.Id, and is useful for accessing the field via an interface. 156 func (v *InterfaceNoFragmentsQueryRandomItemVideo) GetId() testutil.ID { return v.Id } 157 158 // GetName returns InterfaceNoFragmentsQueryRandomItemVideo.Name, and is useful for accessing the field via an interface. 159 func (v *InterfaceNoFragmentsQueryRandomItemVideo) GetName() string { return v.Name } 160 161 // InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle includes the requested fields of the GraphQL type Article. 162 type InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle struct { 163 Typename string `json:"__typename"` 164 // ID is the identifier of the content. 165 Id testutil.ID `json:"id"` 166 Name string `json:"name"` 167 } 168 169 // GetTypename returns InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle.Typename, and is useful for accessing the field via an interface. 170 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle) GetTypename() string { 171 return v.Typename 172 } 173 174 // GetId returns InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle.Id, and is useful for accessing the field via an interface. 175 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle) GetId() testutil.ID { return v.Id } 176 177 // GetName returns InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle.Name, and is useful for accessing the field via an interface. 178 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle) GetName() string { return v.Name } 179 180 // InterfaceNoFragmentsQueryRandomItemWithTypeNameContent includes the requested fields of the GraphQL interface Content. 181 // 182 // InterfaceNoFragmentsQueryRandomItemWithTypeNameContent is implemented by the following types: 183 // InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle 184 // InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic 185 // InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo 186 // The GraphQL type's documentation follows. 187 // 188 // Content is implemented by various types like Article, Video, and Topic. 189 type InterfaceNoFragmentsQueryRandomItemWithTypeNameContent interface { 190 implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemWithTypeNameContent() 191 // GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values). 192 GetTypename() string 193 // GetId returns the interface-field "id" from its implementation. 194 // The GraphQL interface field's documentation follows. 195 // 196 // ID is the identifier of the content. 197 GetId() testutil.ID 198 // GetName returns the interface-field "name" from its implementation. 199 GetName() string 200 } 201 202 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemWithTypeNameContent() { 203 } 204 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemWithTypeNameContent() { 205 } 206 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRandomItemWithTypeNameContent() { 207 } 208 209 func __unmarshalInterfaceNoFragmentsQueryRandomItemWithTypeNameContent(b []byte, v *InterfaceNoFragmentsQueryRandomItemWithTypeNameContent) error { 210 if string(b) == "null" { 211 return nil 212 } 213 214 var tn struct { 215 TypeName string `json:"__typename"` 216 } 217 err := json.Unmarshal(b, &tn) 218 if err != nil { 219 return err 220 } 221 222 switch tn.TypeName { 223 case "Article": 224 *v = new(InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle) 225 return json.Unmarshal(b, *v) 226 case "Topic": 227 *v = new(InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic) 228 return json.Unmarshal(b, *v) 229 case "Video": 230 *v = new(InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo) 231 return json.Unmarshal(b, *v) 232 case "": 233 return fmt.Errorf( 234 "response was missing Content.__typename") 235 default: 236 return fmt.Errorf( 237 `unexpected concrete type for InterfaceNoFragmentsQueryRandomItemWithTypeNameContent: "%v"`, tn.TypeName) 238 } 239 } 240 241 func __marshalInterfaceNoFragmentsQueryRandomItemWithTypeNameContent(v *InterfaceNoFragmentsQueryRandomItemWithTypeNameContent) ([]byte, error) { 242 243 var typename string 244 switch v := (*v).(type) { 245 case *InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle: 246 typename = "Article" 247 248 result := struct { 249 TypeName string `json:"__typename"` 250 *InterfaceNoFragmentsQueryRandomItemWithTypeNameArticle 251 }{typename, v} 252 return json.Marshal(result) 253 case *InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic: 254 typename = "Topic" 255 256 result := struct { 257 TypeName string `json:"__typename"` 258 *InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic 259 }{typename, v} 260 return json.Marshal(result) 261 case *InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo: 262 typename = "Video" 263 264 result := struct { 265 TypeName string `json:"__typename"` 266 *InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo 267 }{typename, v} 268 return json.Marshal(result) 269 case nil: 270 return []byte("null"), nil 271 default: 272 return nil, fmt.Errorf( 273 `unexpected concrete type for InterfaceNoFragmentsQueryRandomItemWithTypeNameContent: "%T"`, v) 274 } 275 } 276 277 // InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic includes the requested fields of the GraphQL type Topic. 278 type InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic struct { 279 Typename string `json:"__typename"` 280 // ID is the identifier of the content. 281 Id testutil.ID `json:"id"` 282 Name string `json:"name"` 283 } 284 285 // GetTypename returns InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic.Typename, and is useful for accessing the field via an interface. 286 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic) GetTypename() string { 287 return v.Typename 288 } 289 290 // GetId returns InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic.Id, and is useful for accessing the field via an interface. 291 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic) GetId() testutil.ID { return v.Id } 292 293 // GetName returns InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic.Name, and is useful for accessing the field via an interface. 294 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameTopic) GetName() string { return v.Name } 295 296 // InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo includes the requested fields of the GraphQL type Video. 297 type InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo struct { 298 Typename string `json:"__typename"` 299 // ID is the identifier of the content. 300 Id testutil.ID `json:"id"` 301 Name string `json:"name"` 302 } 303 304 // GetTypename returns InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo.Typename, and is useful for accessing the field via an interface. 305 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo) GetTypename() string { 306 return v.Typename 307 } 308 309 // GetId returns InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo.Id, and is useful for accessing the field via an interface. 310 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo) GetId() testutil.ID { return v.Id } 311 312 // GetName returns InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo.Name, and is useful for accessing the field via an interface. 313 func (v *InterfaceNoFragmentsQueryRandomItemWithTypeNameVideo) GetName() string { return v.Name } 314 315 // InterfaceNoFragmentsQueryResponse is returned by InterfaceNoFragmentsQuery on success. 316 type InterfaceNoFragmentsQueryResponse struct { 317 Root InterfaceNoFragmentsQueryRootTopic `json:"root"` 318 RandomItem InterfaceNoFragmentsQueryRandomItemContent `json:"-"` 319 RandomItemWithTypeName InterfaceNoFragmentsQueryRandomItemWithTypeNameContent `json:"-"` 320 WithPointer *InterfaceNoFragmentsQueryWithPointerContent `json:"-"` 321 } 322 323 // GetRoot returns InterfaceNoFragmentsQueryResponse.Root, and is useful for accessing the field via an interface. 324 func (v *InterfaceNoFragmentsQueryResponse) GetRoot() InterfaceNoFragmentsQueryRootTopic { 325 return v.Root 326 } 327 328 // GetRandomItem returns InterfaceNoFragmentsQueryResponse.RandomItem, and is useful for accessing the field via an interface. 329 func (v *InterfaceNoFragmentsQueryResponse) GetRandomItem() InterfaceNoFragmentsQueryRandomItemContent { 330 return v.RandomItem 331 } 332 333 // GetRandomItemWithTypeName returns InterfaceNoFragmentsQueryResponse.RandomItemWithTypeName, and is useful for accessing the field via an interface. 334 func (v *InterfaceNoFragmentsQueryResponse) GetRandomItemWithTypeName() InterfaceNoFragmentsQueryRandomItemWithTypeNameContent { 335 return v.RandomItemWithTypeName 336 } 337 338 // GetWithPointer returns InterfaceNoFragmentsQueryResponse.WithPointer, and is useful for accessing the field via an interface. 339 func (v *InterfaceNoFragmentsQueryResponse) GetWithPointer() *InterfaceNoFragmentsQueryWithPointerContent { 340 return v.WithPointer 341 } 342 343 func (v *InterfaceNoFragmentsQueryResponse) UnmarshalJSON(b []byte) error { 344 345 if string(b) == "null" { 346 return nil 347 } 348 349 var firstPass struct { 350 *InterfaceNoFragmentsQueryResponse 351 RandomItem json.RawMessage `json:"randomItem"` 352 RandomItemWithTypeName json.RawMessage `json:"randomItemWithTypeName"` 353 WithPointer json.RawMessage `json:"withPointer"` 354 graphql.NoUnmarshalJSON 355 } 356 firstPass.InterfaceNoFragmentsQueryResponse = v 357 358 err := json.Unmarshal(b, &firstPass) 359 if err != nil { 360 return err 361 } 362 363 { 364 dst := &v.RandomItem 365 src := firstPass.RandomItem 366 if len(src) != 0 && string(src) != "null" { 367 err = __unmarshalInterfaceNoFragmentsQueryRandomItemContent( 368 src, dst) 369 if err != nil { 370 return fmt.Errorf( 371 "unable to unmarshal InterfaceNoFragmentsQueryResponse.RandomItem: %w", err) 372 } 373 } 374 } 375 376 { 377 dst := &v.RandomItemWithTypeName 378 src := firstPass.RandomItemWithTypeName 379 if len(src) != 0 && string(src) != "null" { 380 err = __unmarshalInterfaceNoFragmentsQueryRandomItemWithTypeNameContent( 381 src, dst) 382 if err != nil { 383 return fmt.Errorf( 384 "unable to unmarshal InterfaceNoFragmentsQueryResponse.RandomItemWithTypeName: %w", err) 385 } 386 } 387 } 388 389 { 390 dst := &v.WithPointer 391 src := firstPass.WithPointer 392 if len(src) != 0 && string(src) != "null" { 393 *dst = new(InterfaceNoFragmentsQueryWithPointerContent) 394 err = __unmarshalInterfaceNoFragmentsQueryWithPointerContent( 395 src, *dst) 396 if err != nil { 397 return fmt.Errorf( 398 "unable to unmarshal InterfaceNoFragmentsQueryResponse.WithPointer: %w", err) 399 } 400 } 401 } 402 return nil 403 } 404 405 type __premarshalInterfaceNoFragmentsQueryResponse struct { 406 Root InterfaceNoFragmentsQueryRootTopic `json:"root"` 407 408 RandomItem json.RawMessage `json:"randomItem"` 409 410 RandomItemWithTypeName json.RawMessage `json:"randomItemWithTypeName"` 411 412 WithPointer json.RawMessage `json:"withPointer"` 413 } 414 415 func (v *InterfaceNoFragmentsQueryResponse) MarshalJSON() ([]byte, error) { 416 premarshaled, err := v.__premarshalJSON() 417 if err != nil { 418 return nil, err 419 } 420 return json.Marshal(premarshaled) 421 } 422 423 func (v *InterfaceNoFragmentsQueryResponse) __premarshalJSON() (*__premarshalInterfaceNoFragmentsQueryResponse, error) { 424 var retval __premarshalInterfaceNoFragmentsQueryResponse 425 426 retval.Root = v.Root 427 { 428 429 dst := &retval.RandomItem 430 src := v.RandomItem 431 var err error 432 *dst, err = __marshalInterfaceNoFragmentsQueryRandomItemContent( 433 &src) 434 if err != nil { 435 return nil, fmt.Errorf( 436 "unable to marshal InterfaceNoFragmentsQueryResponse.RandomItem: %w", err) 437 } 438 } 439 { 440 441 dst := &retval.RandomItemWithTypeName 442 src := v.RandomItemWithTypeName 443 var err error 444 *dst, err = __marshalInterfaceNoFragmentsQueryRandomItemWithTypeNameContent( 445 &src) 446 if err != nil { 447 return nil, fmt.Errorf( 448 "unable to marshal InterfaceNoFragmentsQueryResponse.RandomItemWithTypeName: %w", err) 449 } 450 } 451 { 452 453 dst := &retval.WithPointer 454 src := v.WithPointer 455 if src != nil { 456 var err error 457 *dst, err = __marshalInterfaceNoFragmentsQueryWithPointerContent( 458 src) 459 if err != nil { 460 return nil, fmt.Errorf( 461 "unable to marshal InterfaceNoFragmentsQueryResponse.WithPointer: %w", err) 462 } 463 } 464 } 465 return &retval, nil 466 } 467 468 // InterfaceNoFragmentsQueryRootTopic includes the requested fields of the GraphQL type Topic. 469 type InterfaceNoFragmentsQueryRootTopic struct { 470 // ID is documented in the Content interface. 471 Id testutil.ID `json:"id"` 472 Name string `json:"name"` 473 } 474 475 // GetId returns InterfaceNoFragmentsQueryRootTopic.Id, and is useful for accessing the field via an interface. 476 func (v *InterfaceNoFragmentsQueryRootTopic) GetId() testutil.ID { return v.Id } 477 478 // GetName returns InterfaceNoFragmentsQueryRootTopic.Name, and is useful for accessing the field via an interface. 479 func (v *InterfaceNoFragmentsQueryRootTopic) GetName() string { return v.Name } 480 481 // InterfaceNoFragmentsQueryWithPointerArticle includes the requested fields of the GraphQL type Article. 482 type InterfaceNoFragmentsQueryWithPointerArticle struct { 483 Typename string `json:"__typename"` 484 // ID is the identifier of the content. 485 Id *testutil.ID `json:"id"` 486 Name *string `json:"name"` 487 } 488 489 // GetTypename returns InterfaceNoFragmentsQueryWithPointerArticle.Typename, and is useful for accessing the field via an interface. 490 func (v *InterfaceNoFragmentsQueryWithPointerArticle) GetTypename() string { return v.Typename } 491 492 // GetId returns InterfaceNoFragmentsQueryWithPointerArticle.Id, and is useful for accessing the field via an interface. 493 func (v *InterfaceNoFragmentsQueryWithPointerArticle) GetId() *testutil.ID { return v.Id } 494 495 // GetName returns InterfaceNoFragmentsQueryWithPointerArticle.Name, and is useful for accessing the field via an interface. 496 func (v *InterfaceNoFragmentsQueryWithPointerArticle) GetName() *string { return v.Name } 497 498 // InterfaceNoFragmentsQueryWithPointerContent includes the requested fields of the GraphQL interface Content. 499 // 500 // InterfaceNoFragmentsQueryWithPointerContent is implemented by the following types: 501 // InterfaceNoFragmentsQueryWithPointerArticle 502 // InterfaceNoFragmentsQueryWithPointerTopic 503 // InterfaceNoFragmentsQueryWithPointerVideo 504 // The GraphQL type's documentation follows. 505 // 506 // Content is implemented by various types like Article, Video, and Topic. 507 type InterfaceNoFragmentsQueryWithPointerContent interface { 508 implementsGraphQLInterfaceInterfaceNoFragmentsQueryWithPointerContent() 509 // GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values). 510 GetTypename() string 511 // GetId returns the interface-field "id" from its implementation. 512 // The GraphQL interface field's documentation follows. 513 // 514 // ID is the identifier of the content. 515 GetId() *testutil.ID 516 // GetName returns the interface-field "name" from its implementation. 517 GetName() *string 518 } 519 520 func (v *InterfaceNoFragmentsQueryWithPointerArticle) implementsGraphQLInterfaceInterfaceNoFragmentsQueryWithPointerContent() { 521 } 522 func (v *InterfaceNoFragmentsQueryWithPointerTopic) implementsGraphQLInterfaceInterfaceNoFragmentsQueryWithPointerContent() { 523 } 524 func (v *InterfaceNoFragmentsQueryWithPointerVideo) implementsGraphQLInterfaceInterfaceNoFragmentsQueryWithPointerContent() { 525 } 526 527 func __unmarshalInterfaceNoFragmentsQueryWithPointerContent(b []byte, v *InterfaceNoFragmentsQueryWithPointerContent) error { 528 if string(b) == "null" { 529 return nil 530 } 531 532 var tn struct { 533 TypeName string `json:"__typename"` 534 } 535 err := json.Unmarshal(b, &tn) 536 if err != nil { 537 return err 538 } 539 540 switch tn.TypeName { 541 case "Article": 542 *v = new(InterfaceNoFragmentsQueryWithPointerArticle) 543 return json.Unmarshal(b, *v) 544 case "Topic": 545 *v = new(InterfaceNoFragmentsQueryWithPointerTopic) 546 return json.Unmarshal(b, *v) 547 case "Video": 548 *v = new(InterfaceNoFragmentsQueryWithPointerVideo) 549 return json.Unmarshal(b, *v) 550 case "": 551 return fmt.Errorf( 552 "response was missing Content.__typename") 553 default: 554 return fmt.Errorf( 555 `unexpected concrete type for InterfaceNoFragmentsQueryWithPointerContent: "%v"`, tn.TypeName) 556 } 557 } 558 559 func __marshalInterfaceNoFragmentsQueryWithPointerContent(v *InterfaceNoFragmentsQueryWithPointerContent) ([]byte, error) { 560 561 var typename string 562 switch v := (*v).(type) { 563 case *InterfaceNoFragmentsQueryWithPointerArticle: 564 typename = "Article" 565 566 result := struct { 567 TypeName string `json:"__typename"` 568 *InterfaceNoFragmentsQueryWithPointerArticle 569 }{typename, v} 570 return json.Marshal(result) 571 case *InterfaceNoFragmentsQueryWithPointerTopic: 572 typename = "Topic" 573 574 result := struct { 575 TypeName string `json:"__typename"` 576 *InterfaceNoFragmentsQueryWithPointerTopic 577 }{typename, v} 578 return json.Marshal(result) 579 case *InterfaceNoFragmentsQueryWithPointerVideo: 580 typename = "Video" 581 582 result := struct { 583 TypeName string `json:"__typename"` 584 *InterfaceNoFragmentsQueryWithPointerVideo 585 }{typename, v} 586 return json.Marshal(result) 587 case nil: 588 return []byte("null"), nil 589 default: 590 return nil, fmt.Errorf( 591 `unexpected concrete type for InterfaceNoFragmentsQueryWithPointerContent: "%T"`, v) 592 } 593 } 594 595 // InterfaceNoFragmentsQueryWithPointerTopic includes the requested fields of the GraphQL type Topic. 596 type InterfaceNoFragmentsQueryWithPointerTopic struct { 597 Typename string `json:"__typename"` 598 // ID is the identifier of the content. 599 Id *testutil.ID `json:"id"` 600 Name *string `json:"name"` 601 } 602 603 // GetTypename returns InterfaceNoFragmentsQueryWithPointerTopic.Typename, and is useful for accessing the field via an interface. 604 func (v *InterfaceNoFragmentsQueryWithPointerTopic) GetTypename() string { return v.Typename } 605 606 // GetId returns InterfaceNoFragmentsQueryWithPointerTopic.Id, and is useful for accessing the field via an interface. 607 func (v *InterfaceNoFragmentsQueryWithPointerTopic) GetId() *testutil.ID { return v.Id } 608 609 // GetName returns InterfaceNoFragmentsQueryWithPointerTopic.Name, and is useful for accessing the field via an interface. 610 func (v *InterfaceNoFragmentsQueryWithPointerTopic) GetName() *string { return v.Name } 611 612 // InterfaceNoFragmentsQueryWithPointerVideo includes the requested fields of the GraphQL type Video. 613 type InterfaceNoFragmentsQueryWithPointerVideo struct { 614 Typename string `json:"__typename"` 615 // ID is the identifier of the content. 616 Id *testutil.ID `json:"id"` 617 Name *string `json:"name"` 618 } 619 620 // GetTypename returns InterfaceNoFragmentsQueryWithPointerVideo.Typename, and is useful for accessing the field via an interface. 621 func (v *InterfaceNoFragmentsQueryWithPointerVideo) GetTypename() string { return v.Typename } 622 623 // GetId returns InterfaceNoFragmentsQueryWithPointerVideo.Id, and is useful for accessing the field via an interface. 624 func (v *InterfaceNoFragmentsQueryWithPointerVideo) GetId() *testutil.ID { return v.Id } 625 626 // GetName returns InterfaceNoFragmentsQueryWithPointerVideo.Name, and is useful for accessing the field via an interface. 627 func (v *InterfaceNoFragmentsQueryWithPointerVideo) GetName() *string { return v.Name } 628 629 // The query or mutation executed by InterfaceNoFragmentsQuery. 630 const InterfaceNoFragmentsQuery_Operation = ` 631 query InterfaceNoFragmentsQuery { 632 root { 633 id 634 name 635 } 636 randomItem { 637 __typename 638 id 639 name 640 } 641 randomItemWithTypeName: randomItem { 642 __typename 643 id 644 name 645 } 646 withPointer: randomItem { 647 __typename 648 id 649 name 650 } 651 } 652 ` 653 654 func InterfaceNoFragmentsQuery( 655 client_ graphql.Client, 656 ) (*InterfaceNoFragmentsQueryResponse, error) { 657 req_ := &graphql.Request{ 658 OpName: "InterfaceNoFragmentsQuery", 659 Query: InterfaceNoFragmentsQuery_Operation, 660 } 661 var err_ error 662 663 var data_ InterfaceNoFragmentsQueryResponse 664 resp_ := &graphql.Response{Data: &data_} 665 666 err_ = client_.MakeRequest( 667 nil, 668 req_, 669 resp_, 670 ) 671 672 return &data_, err_ 673 } 674