c0510ff54a
Follow best practices from Go Review Comments: https://github.com/golang/go/wiki/CodeReviewComments#error-strings Closes: #202
1455 lines
55 KiB
Go
1455 lines
55 KiB
Go
// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
|
|
|
|
package test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
|
|
"github.com/Khan/genqlient/graphql"
|
|
"github.com/Khan/genqlient/internal/testutil"
|
|
)
|
|
|
|
// ComplexInlineFragmentsConflictingStuffArticle includes the requested fields of the GraphQL type Article.
|
|
type ComplexInlineFragmentsConflictingStuffArticle struct {
|
|
Typename string `json:"__typename"`
|
|
Thumbnail ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail `json:"thumbnail"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsConflictingStuffArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffArticle) GetTypename() string { return v.Typename }
|
|
|
|
// GetThumbnail returns ComplexInlineFragmentsConflictingStuffArticle.Thumbnail, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffArticle) GetThumbnail() ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail {
|
|
return v.Thumbnail
|
|
}
|
|
|
|
// ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail includes the requested fields of the GraphQL type StuffThumbnail.
|
|
type ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail struct {
|
|
Id testutil.ID `json:"id"`
|
|
ThumbnailUrl string `json:"thumbnailUrl"`
|
|
}
|
|
|
|
// GetId returns ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail) GetId() testutil.ID {
|
|
return v.Id
|
|
}
|
|
|
|
// GetThumbnailUrl returns ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail.ThumbnailUrl, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffArticleThumbnailStuffThumbnail) GetThumbnailUrl() string {
|
|
return v.ThumbnailUrl
|
|
}
|
|
|
|
// ComplexInlineFragmentsConflictingStuffContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ComplexInlineFragmentsConflictingStuffContent is implemented by the following types:
|
|
// ComplexInlineFragmentsConflictingStuffArticle
|
|
// ComplexInlineFragmentsConflictingStuffTopic
|
|
// ComplexInlineFragmentsConflictingStuffVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ComplexInlineFragmentsConflictingStuffContent interface {
|
|
implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsConflictingStuffArticle) implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsConflictingStuffTopic) implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsConflictingStuffVideo) implementsGraphQLInterfaceComplexInlineFragmentsConflictingStuffContent() {
|
|
}
|
|
|
|
func __unmarshalComplexInlineFragmentsConflictingStuffContent(b []byte, v *ComplexInlineFragmentsConflictingStuffContent) error {
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var tn struct {
|
|
TypeName string `json:"__typename"`
|
|
}
|
|
err := json.Unmarshal(b, &tn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
switch tn.TypeName {
|
|
case "Article":
|
|
*v = new(ComplexInlineFragmentsConflictingStuffArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ComplexInlineFragmentsConflictingStuffTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ComplexInlineFragmentsConflictingStuffVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsConflictingStuffContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalComplexInlineFragmentsConflictingStuffContent(v *ComplexInlineFragmentsConflictingStuffContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ComplexInlineFragmentsConflictingStuffArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsConflictingStuffArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsConflictingStuffTopic:
|
|
typename = "Topic"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsConflictingStuffTopic
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsConflictingStuffVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsConflictingStuffVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsConflictingStuffContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ComplexInlineFragmentsConflictingStuffTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsConflictingStuffTopic struct {
|
|
Typename string `json:"__typename"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsConflictingStuffTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffTopic) GetTypename() string { return v.Typename }
|
|
|
|
// ComplexInlineFragmentsConflictingStuffVideo includes the requested fields of the GraphQL type Video.
|
|
type ComplexInlineFragmentsConflictingStuffVideo struct {
|
|
Typename string `json:"__typename"`
|
|
Thumbnail ComplexInlineFragmentsConflictingStuffVideoThumbnail `json:"thumbnail"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsConflictingStuffVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffVideo) GetTypename() string { return v.Typename }
|
|
|
|
// GetThumbnail returns ComplexInlineFragmentsConflictingStuffVideo.Thumbnail, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffVideo) GetThumbnail() ComplexInlineFragmentsConflictingStuffVideoThumbnail {
|
|
return v.Thumbnail
|
|
}
|
|
|
|
// ComplexInlineFragmentsConflictingStuffVideoThumbnail includes the requested fields of the GraphQL type Thumbnail.
|
|
type ComplexInlineFragmentsConflictingStuffVideoThumbnail struct {
|
|
Id testutil.ID `json:"id"`
|
|
TimestampSec int `json:"timestampSec"`
|
|
}
|
|
|
|
// GetId returns ComplexInlineFragmentsConflictingStuffVideoThumbnail.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffVideoThumbnail) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetTimestampSec returns ComplexInlineFragmentsConflictingStuffVideoThumbnail.TimestampSec, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsConflictingStuffVideoThumbnail) GetTimestampSec() int {
|
|
return v.TimestampSec
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffArticle includes the requested fields of the GraphQL type Article.
|
|
type ComplexInlineFragmentsNestedStuffArticle struct {
|
|
Typename string `json:"__typename"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffArticle) GetTypename() string { return v.Typename }
|
|
|
|
// ComplexInlineFragmentsNestedStuffContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ComplexInlineFragmentsNestedStuffContent is implemented by the following types:
|
|
// ComplexInlineFragmentsNestedStuffArticle
|
|
// ComplexInlineFragmentsNestedStuffTopic
|
|
// ComplexInlineFragmentsNestedStuffVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ComplexInlineFragmentsNestedStuffContent interface {
|
|
implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffArticle) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsNestedStuffTopic) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsNestedStuffVideo) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffContent() {
|
|
}
|
|
|
|
func __unmarshalComplexInlineFragmentsNestedStuffContent(b []byte, v *ComplexInlineFragmentsNestedStuffContent) error {
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var tn struct {
|
|
TypeName string `json:"__typename"`
|
|
}
|
|
err := json.Unmarshal(b, &tn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
switch tn.TypeName {
|
|
case "Article":
|
|
*v = new(ComplexInlineFragmentsNestedStuffArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ComplexInlineFragmentsNestedStuffTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ComplexInlineFragmentsNestedStuffVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsNestedStuffContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalComplexInlineFragmentsNestedStuffContent(v *ComplexInlineFragmentsNestedStuffContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ComplexInlineFragmentsNestedStuffArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsNestedStuffTopic:
|
|
typename = "Topic"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalComplexInlineFragmentsNestedStuffTopic
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsNestedStuffVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsNestedStuffContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsNestedStuffTopic struct {
|
|
Typename string `json:"__typename"`
|
|
Children []ComplexInlineFragmentsNestedStuffTopicChildrenContent `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopic) GetTypename() string { return v.Typename }
|
|
|
|
// GetChildren returns ComplexInlineFragmentsNestedStuffTopic.Children, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopic) GetChildren() []ComplexInlineFragmentsNestedStuffTopicChildrenContent {
|
|
return v.Children
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*ComplexInlineFragmentsNestedStuffTopic
|
|
Children []json.RawMessage `json:"children"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.ComplexInlineFragmentsNestedStuffTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Children
|
|
src := firstPass.Children
|
|
*dst = make(
|
|
[]ComplexInlineFragmentsNestedStuffTopicChildrenContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ComplexInlineFragmentsNestedStuffTopic.Children: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalComplexInlineFragmentsNestedStuffTopic struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Children []json.RawMessage `json:"children"`
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopic) __premarshalJSON() (*__premarshalComplexInlineFragmentsNestedStuffTopic, error) {
|
|
var retval __premarshalComplexInlineFragmentsNestedStuffTopic
|
|
|
|
retval.Typename = v.Typename
|
|
{
|
|
|
|
dst := &retval.Children
|
|
src := v.Children
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalComplexInlineFragmentsNestedStuffTopicChildrenContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ComplexInlineFragmentsNestedStuffTopic.Children: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticle includes the requested fields of the GraphQL type Article.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenArticle struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Text string `json:"text"`
|
|
Parent ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic `json:"parent"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetText returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Text, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetText() string { return v.Text }
|
|
|
|
// GetParent returns ComplexInlineFragmentsNestedStuffTopicChildrenArticle.Parent, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) GetParent() ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic {
|
|
return v.Parent
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic struct {
|
|
Children []ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent `json:"-"`
|
|
}
|
|
|
|
// GetChildren returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic.Children, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) GetChildren() []ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent {
|
|
return v.Children
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic
|
|
Children []json.RawMessage `json:"children"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Children
|
|
src := firstPass.Children
|
|
*dst = make(
|
|
[]ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic.Children: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic struct {
|
|
Children []json.RawMessage `json:"children"`
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic) __premarshalJSON() (*__premarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic, error) {
|
|
var retval __premarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic
|
|
|
|
{
|
|
|
|
dst := &retval.Children
|
|
src := v.Children
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic.Children: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle includes the requested fields of the GraphQL type Article.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) GetId() testutil.ID {
|
|
return v.Id
|
|
}
|
|
|
|
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) GetName() string {
|
|
return v.Name
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent is implemented by the following types:
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent interface {
|
|
implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
// GetId returns the interface-field "id" from its implementation.
|
|
// The GraphQL interface field's documentation follows.
|
|
//
|
|
// ID is the identifier of the content.
|
|
GetId() testutil.ID
|
|
// GetName returns the interface-field "name" from its implementation.
|
|
GetName() string
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent() {
|
|
}
|
|
|
|
func __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(b []byte, v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent) error {
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var tn struct {
|
|
TypeName string `json:"__typename"`
|
|
}
|
|
err := json.Unmarshal(b, &tn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
switch tn.TypeName {
|
|
case "Article":
|
|
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent(v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic:
|
|
typename = "Topic"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) GetId() testutil.ID {
|
|
return v.Id
|
|
}
|
|
|
|
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenTopic) GetName() string {
|
|
return v.Name
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo includes the requested fields of the GraphQL type Video.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) GetId() testutil.ID {
|
|
return v.Id
|
|
}
|
|
|
|
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopicChildrenVideo) GetName() string {
|
|
return v.Name
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic struct {
|
|
Name string `json:"name"`
|
|
Parent ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic `json:"parent"`
|
|
}
|
|
|
|
// GetName returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic) GetName() string {
|
|
return v.Name
|
|
}
|
|
|
|
// GetParent returns ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic.Parent, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentTopic) GetParent() ComplexInlineFragmentsNestedStuffTopicChildrenArticleParentContentParentTopic {
|
|
return v.Parent
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenContent is implemented by the following types:
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenArticle
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenTopic
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenContent interface {
|
|
implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
// GetId returns the interface-field "id" from its implementation.
|
|
// The GraphQL interface field's documentation follows.
|
|
//
|
|
// ID is the identifier of the content.
|
|
GetId() testutil.ID
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenArticle) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenTopic) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenVideo) implementsGraphQLInterfaceComplexInlineFragmentsNestedStuffTopicChildrenContent() {
|
|
}
|
|
|
|
func __unmarshalComplexInlineFragmentsNestedStuffTopicChildrenContent(b []byte, v *ComplexInlineFragmentsNestedStuffTopicChildrenContent) error {
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var tn struct {
|
|
TypeName string `json:"__typename"`
|
|
}
|
|
err := json.Unmarshal(b, &tn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
switch tn.TypeName {
|
|
case "Article":
|
|
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ComplexInlineFragmentsNestedStuffTopicChildrenVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalComplexInlineFragmentsNestedStuffTopicChildrenContent(v *ComplexInlineFragmentsNestedStuffTopicChildrenContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ComplexInlineFragmentsNestedStuffTopicChildrenArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffTopicChildrenArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsNestedStuffTopicChildrenTopic:
|
|
typename = "Topic"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffTopicChildrenTopic
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsNestedStuffTopicChildrenVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsNestedStuffTopicChildrenVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsNestedStuffTopicChildrenContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenTopic struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenTopic) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// ComplexInlineFragmentsNestedStuffTopicChildrenVideo includes the requested fields of the GraphQL type Video.
|
|
type ComplexInlineFragmentsNestedStuffTopicChildrenVideo struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffTopicChildrenVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenVideo) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsNestedStuffTopicChildrenVideo.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffTopicChildrenVideo) GetId() testutil.ID { return v.Id }
|
|
|
|
// ComplexInlineFragmentsNestedStuffVideo includes the requested fields of the GraphQL type Video.
|
|
type ComplexInlineFragmentsNestedStuffVideo struct {
|
|
Typename string `json:"__typename"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsNestedStuffVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsNestedStuffVideo) GetTypename() string { return v.Typename }
|
|
|
|
// ComplexInlineFragmentsRandomItemArticle includes the requested fields of the GraphQL type Article.
|
|
type ComplexInlineFragmentsRandomItemArticle struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Text string `json:"text"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsRandomItemArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemArticle) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsRandomItemArticle.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemArticle) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetText returns ComplexInlineFragmentsRandomItemArticle.Text, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemArticle) GetText() string { return v.Text }
|
|
|
|
// GetName returns ComplexInlineFragmentsRandomItemArticle.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemArticle) GetName() string { return v.Name }
|
|
|
|
// ComplexInlineFragmentsRandomItemContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ComplexInlineFragmentsRandomItemContent is implemented by the following types:
|
|
// ComplexInlineFragmentsRandomItemArticle
|
|
// ComplexInlineFragmentsRandomItemTopic
|
|
// ComplexInlineFragmentsRandomItemVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ComplexInlineFragmentsRandomItemContent interface {
|
|
implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
// GetId returns the interface-field "id" from its implementation.
|
|
// The GraphQL interface field's documentation follows.
|
|
//
|
|
// ID is the identifier of the content.
|
|
GetId() testutil.ID
|
|
// GetName returns the interface-field "name" from its implementation.
|
|
GetName() string
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsRandomItemArticle) implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsRandomItemTopic) implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsRandomItemVideo) implementsGraphQLInterfaceComplexInlineFragmentsRandomItemContent() {
|
|
}
|
|
|
|
func __unmarshalComplexInlineFragmentsRandomItemContent(b []byte, v *ComplexInlineFragmentsRandomItemContent) error {
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var tn struct {
|
|
TypeName string `json:"__typename"`
|
|
}
|
|
err := json.Unmarshal(b, &tn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
switch tn.TypeName {
|
|
case "Article":
|
|
*v = new(ComplexInlineFragmentsRandomItemArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ComplexInlineFragmentsRandomItemTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ComplexInlineFragmentsRandomItemVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsRandomItemContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalComplexInlineFragmentsRandomItemContent(v *ComplexInlineFragmentsRandomItemContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ComplexInlineFragmentsRandomItemArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsRandomItemArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsRandomItemTopic:
|
|
typename = "Topic"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsRandomItemTopic
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsRandomItemVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsRandomItemVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsRandomItemContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ComplexInlineFragmentsRandomItemTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsRandomItemTopic struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsRandomItemTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemTopic) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsRandomItemTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetName returns ComplexInlineFragmentsRandomItemTopic.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemTopic) GetName() string { return v.Name }
|
|
|
|
// ComplexInlineFragmentsRandomItemVideo includes the requested fields of the GraphQL type Video.
|
|
type ComplexInlineFragmentsRandomItemVideo struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Name string `json:"name"`
|
|
Duration int `json:"duration"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsRandomItemVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemVideo) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsRandomItemVideo.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemVideo) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetName returns ComplexInlineFragmentsRandomItemVideo.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemVideo) GetName() string { return v.Name }
|
|
|
|
// GetDuration returns ComplexInlineFragmentsRandomItemVideo.Duration, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRandomItemVideo) GetDuration() int { return v.Duration }
|
|
|
|
// ComplexInlineFragmentsRepeatedStuffArticle includes the requested fields of the GraphQL type Article.
|
|
type ComplexInlineFragmentsRepeatedStuffArticle struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Url string `json:"url"`
|
|
// ID is the identifier of the content.
|
|
OtherId testutil.ID `json:"otherId"`
|
|
Name string `json:"name"`
|
|
Text string `json:"text"`
|
|
OtherName string `json:"otherName"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsRepeatedStuffArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsRepeatedStuffArticle.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetUrl returns ComplexInlineFragmentsRepeatedStuffArticle.Url, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetUrl() string { return v.Url }
|
|
|
|
// GetOtherId returns ComplexInlineFragmentsRepeatedStuffArticle.OtherId, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetOtherId() testutil.ID { return v.OtherId }
|
|
|
|
// GetName returns ComplexInlineFragmentsRepeatedStuffArticle.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetName() string { return v.Name }
|
|
|
|
// GetText returns ComplexInlineFragmentsRepeatedStuffArticle.Text, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetText() string { return v.Text }
|
|
|
|
// GetOtherName returns ComplexInlineFragmentsRepeatedStuffArticle.OtherName, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) GetOtherName() string { return v.OtherName }
|
|
|
|
// ComplexInlineFragmentsRepeatedStuffContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ComplexInlineFragmentsRepeatedStuffContent is implemented by the following types:
|
|
// ComplexInlineFragmentsRepeatedStuffArticle
|
|
// ComplexInlineFragmentsRepeatedStuffTopic
|
|
// ComplexInlineFragmentsRepeatedStuffVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ComplexInlineFragmentsRepeatedStuffContent interface {
|
|
implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
// GetId returns the interface-field "id" from its implementation.
|
|
// The GraphQL interface field's documentation follows.
|
|
//
|
|
// ID is the identifier of the content.
|
|
GetId() testutil.ID
|
|
// GetUrl returns the interface-field "url" from its implementation.
|
|
GetUrl() string
|
|
// GetOtherId returns the interface-field "id" from its implementation.
|
|
// The GraphQL interface field's documentation follows.
|
|
//
|
|
// ID is the identifier of the content.
|
|
GetOtherId() testutil.ID
|
|
// GetName returns the interface-field "name" from its implementation.
|
|
GetName() string
|
|
// GetOtherName returns the interface-field "name" from its implementation.
|
|
GetOtherName() string
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsRepeatedStuffArticle) implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsRepeatedStuffTopic) implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent() {
|
|
}
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) implementsGraphQLInterfaceComplexInlineFragmentsRepeatedStuffContent() {
|
|
}
|
|
|
|
func __unmarshalComplexInlineFragmentsRepeatedStuffContent(b []byte, v *ComplexInlineFragmentsRepeatedStuffContent) error {
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var tn struct {
|
|
TypeName string `json:"__typename"`
|
|
}
|
|
err := json.Unmarshal(b, &tn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
switch tn.TypeName {
|
|
case "Article":
|
|
*v = new(ComplexInlineFragmentsRepeatedStuffArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ComplexInlineFragmentsRepeatedStuffTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ComplexInlineFragmentsRepeatedStuffVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsRepeatedStuffContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalComplexInlineFragmentsRepeatedStuffContent(v *ComplexInlineFragmentsRepeatedStuffContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ComplexInlineFragmentsRepeatedStuffArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsRepeatedStuffArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsRepeatedStuffTopic:
|
|
typename = "Topic"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsRepeatedStuffTopic
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ComplexInlineFragmentsRepeatedStuffVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ComplexInlineFragmentsRepeatedStuffVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ComplexInlineFragmentsRepeatedStuffContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ComplexInlineFragmentsRepeatedStuffTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsRepeatedStuffTopic struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Url string `json:"url"`
|
|
// ID is the identifier of the content.
|
|
OtherId testutil.ID `json:"otherId"`
|
|
Name string `json:"name"`
|
|
OtherName string `json:"otherName"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsRepeatedStuffTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsRepeatedStuffTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetUrl returns ComplexInlineFragmentsRepeatedStuffTopic.Url, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetUrl() string { return v.Url }
|
|
|
|
// GetOtherId returns ComplexInlineFragmentsRepeatedStuffTopic.OtherId, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetOtherId() testutil.ID { return v.OtherId }
|
|
|
|
// GetName returns ComplexInlineFragmentsRepeatedStuffTopic.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetName() string { return v.Name }
|
|
|
|
// GetOtherName returns ComplexInlineFragmentsRepeatedStuffTopic.OtherName, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffTopic) GetOtherName() string { return v.OtherName }
|
|
|
|
// ComplexInlineFragmentsRepeatedStuffVideo includes the requested fields of the GraphQL type Video.
|
|
type ComplexInlineFragmentsRepeatedStuffVideo struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Url string `json:"url"`
|
|
// ID is the identifier of the content.
|
|
OtherId testutil.ID `json:"otherId"`
|
|
Name string `json:"name"`
|
|
OtherName string `json:"otherName"`
|
|
Duration int `json:"duration"`
|
|
}
|
|
|
|
// GetTypename returns ComplexInlineFragmentsRepeatedStuffVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ComplexInlineFragmentsRepeatedStuffVideo.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetUrl returns ComplexInlineFragmentsRepeatedStuffVideo.Url, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetUrl() string { return v.Url }
|
|
|
|
// GetOtherId returns ComplexInlineFragmentsRepeatedStuffVideo.OtherId, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetOtherId() testutil.ID { return v.OtherId }
|
|
|
|
// GetName returns ComplexInlineFragmentsRepeatedStuffVideo.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetName() string { return v.Name }
|
|
|
|
// GetOtherName returns ComplexInlineFragmentsRepeatedStuffVideo.OtherName, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetOtherName() string { return v.OtherName }
|
|
|
|
// GetDuration returns ComplexInlineFragmentsRepeatedStuffVideo.Duration, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRepeatedStuffVideo) GetDuration() int { return v.Duration }
|
|
|
|
// ComplexInlineFragmentsResponse is returned by ComplexInlineFragments on success.
|
|
type ComplexInlineFragmentsResponse struct {
|
|
Root ComplexInlineFragmentsRootTopic `json:"root"`
|
|
RandomItem ComplexInlineFragmentsRandomItemContent `json:"-"`
|
|
RepeatedStuff ComplexInlineFragmentsRepeatedStuffContent `json:"-"`
|
|
ConflictingStuff ComplexInlineFragmentsConflictingStuffContent `json:"-"`
|
|
NestedStuff ComplexInlineFragmentsNestedStuffContent `json:"-"`
|
|
}
|
|
|
|
// GetRoot returns ComplexInlineFragmentsResponse.Root, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsResponse) GetRoot() ComplexInlineFragmentsRootTopic { return v.Root }
|
|
|
|
// GetRandomItem returns ComplexInlineFragmentsResponse.RandomItem, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsResponse) GetRandomItem() ComplexInlineFragmentsRandomItemContent {
|
|
return v.RandomItem
|
|
}
|
|
|
|
// GetRepeatedStuff returns ComplexInlineFragmentsResponse.RepeatedStuff, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsResponse) GetRepeatedStuff() ComplexInlineFragmentsRepeatedStuffContent {
|
|
return v.RepeatedStuff
|
|
}
|
|
|
|
// GetConflictingStuff returns ComplexInlineFragmentsResponse.ConflictingStuff, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsResponse) GetConflictingStuff() ComplexInlineFragmentsConflictingStuffContent {
|
|
return v.ConflictingStuff
|
|
}
|
|
|
|
// GetNestedStuff returns ComplexInlineFragmentsResponse.NestedStuff, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsResponse) GetNestedStuff() ComplexInlineFragmentsNestedStuffContent {
|
|
return v.NestedStuff
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsResponse) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*ComplexInlineFragmentsResponse
|
|
RandomItem json.RawMessage `json:"randomItem"`
|
|
RepeatedStuff json.RawMessage `json:"repeatedStuff"`
|
|
ConflictingStuff json.RawMessage `json:"conflictingStuff"`
|
|
NestedStuff json.RawMessage `json:"nestedStuff"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.ComplexInlineFragmentsResponse = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.RandomItem
|
|
src := firstPass.RandomItem
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalComplexInlineFragmentsRandomItemContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ComplexInlineFragmentsResponse.RandomItem: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.RepeatedStuff
|
|
src := firstPass.RepeatedStuff
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalComplexInlineFragmentsRepeatedStuffContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ComplexInlineFragmentsResponse.RepeatedStuff: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.ConflictingStuff
|
|
src := firstPass.ConflictingStuff
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalComplexInlineFragmentsConflictingStuffContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ComplexInlineFragmentsResponse.ConflictingStuff: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.NestedStuff
|
|
src := firstPass.NestedStuff
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalComplexInlineFragmentsNestedStuffContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ComplexInlineFragmentsResponse.NestedStuff: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalComplexInlineFragmentsResponse struct {
|
|
Root ComplexInlineFragmentsRootTopic `json:"root"`
|
|
|
|
RandomItem json.RawMessage `json:"randomItem"`
|
|
|
|
RepeatedStuff json.RawMessage `json:"repeatedStuff"`
|
|
|
|
ConflictingStuff json.RawMessage `json:"conflictingStuff"`
|
|
|
|
NestedStuff json.RawMessage `json:"nestedStuff"`
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsResponse) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *ComplexInlineFragmentsResponse) __premarshalJSON() (*__premarshalComplexInlineFragmentsResponse, error) {
|
|
var retval __premarshalComplexInlineFragmentsResponse
|
|
|
|
retval.Root = v.Root
|
|
{
|
|
|
|
dst := &retval.RandomItem
|
|
src := v.RandomItem
|
|
var err error
|
|
*dst, err = __marshalComplexInlineFragmentsRandomItemContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ComplexInlineFragmentsResponse.RandomItem: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.RepeatedStuff
|
|
src := v.RepeatedStuff
|
|
var err error
|
|
*dst, err = __marshalComplexInlineFragmentsRepeatedStuffContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ComplexInlineFragmentsResponse.RepeatedStuff: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.ConflictingStuff
|
|
src := v.ConflictingStuff
|
|
var err error
|
|
*dst, err = __marshalComplexInlineFragmentsConflictingStuffContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ComplexInlineFragmentsResponse.ConflictingStuff: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.NestedStuff
|
|
src := v.NestedStuff
|
|
var err error
|
|
*dst, err = __marshalComplexInlineFragmentsNestedStuffContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ComplexInlineFragmentsResponse.NestedStuff: %w", err)
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// ComplexInlineFragmentsRootTopic includes the requested fields of the GraphQL type Topic.
|
|
type ComplexInlineFragmentsRootTopic struct {
|
|
// ID is documented in the Content interface.
|
|
Id testutil.ID `json:"id"`
|
|
SchoolGrade string `json:"schoolGrade"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
// GetId returns ComplexInlineFragmentsRootTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRootTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetSchoolGrade returns ComplexInlineFragmentsRootTopic.SchoolGrade, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRootTopic) GetSchoolGrade() string { return v.SchoolGrade }
|
|
|
|
// GetName returns ComplexInlineFragmentsRootTopic.Name, and is useful for accessing the field via an interface.
|
|
func (v *ComplexInlineFragmentsRootTopic) GetName() string { return v.Name }
|
|
|
|
// We test all the spread cases from docs/DESIGN.md, see there for more context
|
|
// on each, as well as various other nonsense. But for abstract-in-abstract
|
|
// spreads, we can't test cases (4b) and (4c), where I implements J or vice
|
|
// versa, because gqlparser doesn't support interfaces that implement other
|
|
// interfaces yet.
|
|
func ComplexInlineFragments(
|
|
client graphql.Client,
|
|
) (*ComplexInlineFragmentsResponse, error) {
|
|
req := &graphql.Request{
|
|
OpName: "ComplexInlineFragments",
|
|
Query: `
|
|
query ComplexInlineFragments {
|
|
root {
|
|
id
|
|
... on Topic {
|
|
schoolGrade
|
|
}
|
|
... on Content {
|
|
name
|
|
}
|
|
}
|
|
randomItem {
|
|
__typename
|
|
id
|
|
... on Article {
|
|
text
|
|
}
|
|
... on Content {
|
|
name
|
|
}
|
|
... on HasDuration {
|
|
duration
|
|
}
|
|
}
|
|
repeatedStuff: randomItem {
|
|
__typename
|
|
id
|
|
id
|
|
url
|
|
otherId: id
|
|
... on Article {
|
|
name
|
|
text
|
|
otherName: name
|
|
}
|
|
... on Content {
|
|
id
|
|
name
|
|
otherName: name
|
|
}
|
|
... on HasDuration {
|
|
duration
|
|
}
|
|
}
|
|
conflictingStuff: randomItem {
|
|
__typename
|
|
... on Article {
|
|
thumbnail {
|
|
id
|
|
thumbnailUrl
|
|
}
|
|
}
|
|
... on Video {
|
|
thumbnail {
|
|
id
|
|
timestampSec
|
|
}
|
|
}
|
|
}
|
|
nestedStuff: randomItem {
|
|
__typename
|
|
... on Topic {
|
|
children {
|
|
__typename
|
|
id
|
|
... on Article {
|
|
text
|
|
parent {
|
|
... on Content {
|
|
name
|
|
parent {
|
|
... on Topic {
|
|
children {
|
|
__typename
|
|
id
|
|
name
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
`,
|
|
}
|
|
var err error
|
|
|
|
var data ComplexInlineFragmentsResponse
|
|
resp := &graphql.Response{Data: &data}
|
|
|
|
err = client.MakeRequest(
|
|
nil,
|
|
req,
|
|
resp,
|
|
)
|
|
|
|
return &data, err
|
|
}
|
|
|