c0510ff54a
Follow best practices from Go Review Comments: https://github.com/golang/go/wiki/CodeReviewComments#error-strings Closes: #202
2413 lines
73 KiB
Go
2413 lines
73 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"
|
|
)
|
|
|
|
// ContentFields includes the GraphQL fields of Content requested by the fragment ContentFields.
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
//
|
|
// ContentFields is implemented by the following types:
|
|
// ContentFieldsArticle
|
|
// ContentFieldsTopic
|
|
// ContentFieldsVideo
|
|
type ContentFields interface {
|
|
implementsGraphQLInterfaceContentFields()
|
|
// GetNext returns the interface-field "next" from its implementation.
|
|
GetNext() ContentFieldsNextContent
|
|
// GetRelated returns the interface-field "related" from its implementation.
|
|
GetRelated() []ContentFieldsRelatedContent
|
|
}
|
|
|
|
func (v *ContentFieldsArticle) implementsGraphQLInterfaceContentFields() {}
|
|
func (v *ContentFieldsTopic) implementsGraphQLInterfaceContentFields() {}
|
|
func (v *ContentFieldsVideo) implementsGraphQLInterfaceContentFields() {}
|
|
|
|
func __unmarshalContentFields(b []byte, v *ContentFields) 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(ContentFieldsArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ContentFieldsTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ContentFieldsVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ContentFields: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalContentFields(v *ContentFields) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ContentFieldsArticle:
|
|
typename = "Article"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalContentFieldsArticle
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *ContentFieldsTopic:
|
|
typename = "Topic"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalContentFieldsTopic
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *ContentFieldsVideo:
|
|
typename = "Video"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalContentFieldsVideo
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ContentFields: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ContentFields includes the GraphQL fields of Article requested by the fragment ContentFields.
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ContentFieldsArticle struct {
|
|
Next ContentFieldsNextContent `json:"-"`
|
|
Related []ContentFieldsRelatedContent `json:"-"`
|
|
}
|
|
|
|
// GetNext returns ContentFieldsArticle.Next, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsArticle) GetNext() ContentFieldsNextContent { return v.Next }
|
|
|
|
// GetRelated returns ContentFieldsArticle.Related, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsArticle) GetRelated() []ContentFieldsRelatedContent { return v.Related }
|
|
|
|
func (v *ContentFieldsArticle) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*ContentFieldsArticle
|
|
Next json.RawMessage `json:"next"`
|
|
Related []json.RawMessage `json:"related"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.ContentFieldsArticle = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Next
|
|
src := firstPass.Next
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalContentFieldsNextContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ContentFieldsArticle.Next: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.Related
|
|
src := firstPass.Related
|
|
*dst = make(
|
|
[]ContentFieldsRelatedContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalContentFieldsRelatedContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ContentFieldsArticle.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalContentFieldsArticle struct {
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *ContentFieldsArticle) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *ContentFieldsArticle) __premarshalJSON() (*__premarshalContentFieldsArticle, error) {
|
|
var retval __premarshalContentFieldsArticle
|
|
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ContentFieldsArticle.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ContentFieldsArticle.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// ContentFieldsNextArticle includes the requested fields of the GraphQL type Article.
|
|
type ContentFieldsNextArticle struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ContentFieldsNextArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsNextArticle) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ContentFieldsNextArticle.Id, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsNextArticle) GetId() testutil.ID { return v.Id }
|
|
|
|
// ContentFieldsNextContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ContentFieldsNextContent is implemented by the following types:
|
|
// ContentFieldsNextArticle
|
|
// ContentFieldsNextTopic
|
|
// ContentFieldsNextVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ContentFieldsNextContent interface {
|
|
implementsGraphQLInterfaceContentFieldsNextContent()
|
|
// 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 *ContentFieldsNextArticle) implementsGraphQLInterfaceContentFieldsNextContent() {}
|
|
func (v *ContentFieldsNextTopic) implementsGraphQLInterfaceContentFieldsNextContent() {}
|
|
func (v *ContentFieldsNextVideo) implementsGraphQLInterfaceContentFieldsNextContent() {}
|
|
|
|
func __unmarshalContentFieldsNextContent(b []byte, v *ContentFieldsNextContent) 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(ContentFieldsNextArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ContentFieldsNextTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ContentFieldsNextVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ContentFieldsNextContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalContentFieldsNextContent(v *ContentFieldsNextContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ContentFieldsNextArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ContentFieldsNextArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ContentFieldsNextTopic:
|
|
typename = "Topic"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ContentFieldsNextTopic
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ContentFieldsNextVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ContentFieldsNextVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ContentFieldsNextContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ContentFieldsNextTopic includes the requested fields of the GraphQL type Topic.
|
|
type ContentFieldsNextTopic struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ContentFieldsNextTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsNextTopic) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ContentFieldsNextTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsNextTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// ContentFieldsNextVideo includes the requested fields of the GraphQL type Video.
|
|
type ContentFieldsNextVideo struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ContentFieldsNextVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsNextVideo) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ContentFieldsNextVideo.Id, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsNextVideo) GetId() testutil.ID { return v.Id }
|
|
|
|
// ContentFieldsRelatedArticle includes the requested fields of the GraphQL type Article.
|
|
type ContentFieldsRelatedArticle struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ContentFieldsRelatedArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsRelatedArticle) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ContentFieldsRelatedArticle.Id, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsRelatedArticle) GetId() testutil.ID { return v.Id }
|
|
|
|
// ContentFieldsRelatedContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// ContentFieldsRelatedContent is implemented by the following types:
|
|
// ContentFieldsRelatedArticle
|
|
// ContentFieldsRelatedTopic
|
|
// ContentFieldsRelatedVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ContentFieldsRelatedContent interface {
|
|
implementsGraphQLInterfaceContentFieldsRelatedContent()
|
|
// 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 *ContentFieldsRelatedArticle) implementsGraphQLInterfaceContentFieldsRelatedContent() {}
|
|
func (v *ContentFieldsRelatedTopic) implementsGraphQLInterfaceContentFieldsRelatedContent() {}
|
|
func (v *ContentFieldsRelatedVideo) implementsGraphQLInterfaceContentFieldsRelatedContent() {}
|
|
|
|
func __unmarshalContentFieldsRelatedContent(b []byte, v *ContentFieldsRelatedContent) 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(ContentFieldsRelatedArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(ContentFieldsRelatedTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(ContentFieldsRelatedVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for ContentFieldsRelatedContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalContentFieldsRelatedContent(v *ContentFieldsRelatedContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *ContentFieldsRelatedArticle:
|
|
typename = "Article"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ContentFieldsRelatedArticle
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ContentFieldsRelatedTopic:
|
|
typename = "Topic"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ContentFieldsRelatedTopic
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case *ContentFieldsRelatedVideo:
|
|
typename = "Video"
|
|
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*ContentFieldsRelatedVideo
|
|
}{typename, v}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for ContentFieldsRelatedContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// ContentFieldsRelatedTopic includes the requested fields of the GraphQL type Topic.
|
|
type ContentFieldsRelatedTopic struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ContentFieldsRelatedTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsRelatedTopic) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ContentFieldsRelatedTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsRelatedTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// ContentFieldsRelatedVideo includes the requested fields of the GraphQL type Video.
|
|
type ContentFieldsRelatedVideo struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetTypename returns ContentFieldsRelatedVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsRelatedVideo) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns ContentFieldsRelatedVideo.Id, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsRelatedVideo) GetId() testutil.ID { return v.Id }
|
|
|
|
// ContentFields includes the GraphQL fields of Topic requested by the fragment ContentFields.
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ContentFieldsTopic struct {
|
|
Next ContentFieldsNextContent `json:"-"`
|
|
Related []ContentFieldsRelatedContent `json:"-"`
|
|
}
|
|
|
|
// GetNext returns ContentFieldsTopic.Next, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsTopic) GetNext() ContentFieldsNextContent { return v.Next }
|
|
|
|
// GetRelated returns ContentFieldsTopic.Related, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsTopic) GetRelated() []ContentFieldsRelatedContent { return v.Related }
|
|
|
|
func (v *ContentFieldsTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*ContentFieldsTopic
|
|
Next json.RawMessage `json:"next"`
|
|
Related []json.RawMessage `json:"related"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.ContentFieldsTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Next
|
|
src := firstPass.Next
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalContentFieldsNextContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ContentFieldsTopic.Next: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.Related
|
|
src := firstPass.Related
|
|
*dst = make(
|
|
[]ContentFieldsRelatedContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalContentFieldsRelatedContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ContentFieldsTopic.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalContentFieldsTopic struct {
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *ContentFieldsTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *ContentFieldsTopic) __premarshalJSON() (*__premarshalContentFieldsTopic, error) {
|
|
var retval __premarshalContentFieldsTopic
|
|
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ContentFieldsTopic.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ContentFieldsTopic.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// ContentFields includes the GraphQL fields of Video requested by the fragment ContentFields.
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type ContentFieldsVideo struct {
|
|
Next ContentFieldsNextContent `json:"-"`
|
|
Related []ContentFieldsRelatedContent `json:"-"`
|
|
}
|
|
|
|
// GetNext returns ContentFieldsVideo.Next, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsVideo) GetNext() ContentFieldsNextContent { return v.Next }
|
|
|
|
// GetRelated returns ContentFieldsVideo.Related, and is useful for accessing the field via an interface.
|
|
func (v *ContentFieldsVideo) GetRelated() []ContentFieldsRelatedContent { return v.Related }
|
|
|
|
func (v *ContentFieldsVideo) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*ContentFieldsVideo
|
|
Next json.RawMessage `json:"next"`
|
|
Related []json.RawMessage `json:"related"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.ContentFieldsVideo = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Next
|
|
src := firstPass.Next
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalContentFieldsNextContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ContentFieldsVideo.Next: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.Related
|
|
src := firstPass.Related
|
|
*dst = make(
|
|
[]ContentFieldsRelatedContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalContentFieldsRelatedContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal ContentFieldsVideo.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalContentFieldsVideo struct {
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *ContentFieldsVideo) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *ContentFieldsVideo) __premarshalJSON() (*__premarshalContentFieldsVideo, error) {
|
|
var retval __premarshalContentFieldsVideo
|
|
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ContentFieldsVideo.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal ContentFieldsVideo.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemArticle includes the requested fields of the GraphQL type Article.
|
|
type CovariantInterfaceImplementationRandomItemArticle struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Next CovariantInterfaceImplementationRandomItemContentNextContent `json:"-"`
|
|
Related []CovariantInterfaceImplementationRandomItemContentRelatedContent `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns CovariantInterfaceImplementationRandomItemArticle.Id, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemArticle.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) GetNext() CovariantInterfaceImplementationRandomItemContentNextContent {
|
|
return v.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemArticle.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) GetRelated() []CovariantInterfaceImplementationRandomItemContentRelatedContent {
|
|
return v.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemArticle
|
|
Next json.RawMessage `json:"next"`
|
|
Related []json.RawMessage `json:"related"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemArticle = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Next
|
|
src := firstPass.Next
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalCovariantInterfaceImplementationRandomItemContentNextContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal CovariantInterfaceImplementationRandomItemArticle.Next: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.Related
|
|
src := firstPass.Related
|
|
*dst = make(
|
|
[]CovariantInterfaceImplementationRandomItemContentRelatedContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalCovariantInterfaceImplementationRandomItemContentRelatedContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal CovariantInterfaceImplementationRandomItemArticle.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemArticle struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Id testutil.ID `json:"id"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemArticle, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemArticle
|
|
|
|
retval.Typename = v.Typename
|
|
retval.Id = v.Id
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.Next
|
|
var err error
|
|
*dst, err = __marshalCovariantInterfaceImplementationRandomItemContentNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemArticle.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalCovariantInterfaceImplementationRandomItemContentRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemArticle.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// CovariantInterfaceImplementationRandomItemContent is implemented by the following types:
|
|
// CovariantInterfaceImplementationRandomItemArticle
|
|
// CovariantInterfaceImplementationRandomItemTopic
|
|
// CovariantInterfaceImplementationRandomItemVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type CovariantInterfaceImplementationRandomItemContent interface {
|
|
implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContent()
|
|
// 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
|
|
// GetNext returns the interface-field "next" from its implementation.
|
|
GetNext() CovariantInterfaceImplementationRandomItemContentNextContent
|
|
// GetRelated returns the interface-field "related" from its implementation.
|
|
GetRelated() []CovariantInterfaceImplementationRandomItemContentRelatedContent
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemArticle) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContent() {
|
|
}
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContent() {
|
|
}
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContent() {
|
|
}
|
|
|
|
func __unmarshalCovariantInterfaceImplementationRandomItemContent(b []byte, v *CovariantInterfaceImplementationRandomItemContent) 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(CovariantInterfaceImplementationRandomItemArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(CovariantInterfaceImplementationRandomItemTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(CovariantInterfaceImplementationRandomItemVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for CovariantInterfaceImplementationRandomItemContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalCovariantInterfaceImplementationRandomItemContent(v *CovariantInterfaceImplementationRandomItemContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *CovariantInterfaceImplementationRandomItemArticle:
|
|
typename = "Article"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemArticle
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *CovariantInterfaceImplementationRandomItemTopic:
|
|
typename = "Topic"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemTopic
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *CovariantInterfaceImplementationRandomItemVideo:
|
|
typename = "Video"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemVideo
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for CovariantInterfaceImplementationRandomItemContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentNextArticle includes the requested fields of the GraphQL type Article.
|
|
type CovariantInterfaceImplementationRandomItemContentNextArticle struct {
|
|
Typename string `json:"__typename"`
|
|
ContentFieldsArticle `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemContentNextArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextArticle) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemContentNextArticle.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextArticle) GetNext() ContentFieldsNextContent {
|
|
return v.ContentFieldsArticle.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemContentNextArticle.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextArticle) GetRelated() []ContentFieldsRelatedContent {
|
|
return v.ContentFieldsArticle.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextArticle) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemContentNextArticle
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemContentNextArticle = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.ContentFieldsArticle)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemContentNextArticle struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextArticle) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextArticle) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemContentNextArticle, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemContentNextArticle
|
|
|
|
retval.Typename = v.Typename
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.ContentFieldsArticle.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentNextArticle.ContentFieldsArticle.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.ContentFieldsArticle.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentNextArticle.ContentFieldsArticle.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentNextContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// CovariantInterfaceImplementationRandomItemContentNextContent is implemented by the following types:
|
|
// CovariantInterfaceImplementationRandomItemContentNextArticle
|
|
// CovariantInterfaceImplementationRandomItemContentNextTopic
|
|
// CovariantInterfaceImplementationRandomItemContentNextVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type CovariantInterfaceImplementationRandomItemContentNextContent interface {
|
|
implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentNextContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
ContentFields
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextArticle) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentNextContent() {
|
|
}
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextTopic) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentNextContent() {
|
|
}
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextVideo) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentNextContent() {
|
|
}
|
|
|
|
func __unmarshalCovariantInterfaceImplementationRandomItemContentNextContent(b []byte, v *CovariantInterfaceImplementationRandomItemContentNextContent) 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(CovariantInterfaceImplementationRandomItemContentNextArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(CovariantInterfaceImplementationRandomItemContentNextTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(CovariantInterfaceImplementationRandomItemContentNextVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for CovariantInterfaceImplementationRandomItemContentNextContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalCovariantInterfaceImplementationRandomItemContentNextContent(v *CovariantInterfaceImplementationRandomItemContentNextContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *CovariantInterfaceImplementationRandomItemContentNextArticle:
|
|
typename = "Article"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemContentNextArticle
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *CovariantInterfaceImplementationRandomItemContentNextTopic:
|
|
typename = "Topic"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemContentNextTopic
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *CovariantInterfaceImplementationRandomItemContentNextVideo:
|
|
typename = "Video"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemContentNextVideo
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for CovariantInterfaceImplementationRandomItemContentNextContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentNextTopic includes the requested fields of the GraphQL type Topic.
|
|
type CovariantInterfaceImplementationRandomItemContentNextTopic struct {
|
|
Typename string `json:"__typename"`
|
|
ContentFieldsTopic `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemContentNextTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextTopic) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemContentNextTopic.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextTopic) GetNext() ContentFieldsNextContent {
|
|
return v.ContentFieldsTopic.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemContentNextTopic.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextTopic) GetRelated() []ContentFieldsRelatedContent {
|
|
return v.ContentFieldsTopic.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemContentNextTopic
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemContentNextTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.ContentFieldsTopic)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemContentNextTopic struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextTopic) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemContentNextTopic, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemContentNextTopic
|
|
|
|
retval.Typename = v.Typename
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.ContentFieldsTopic.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentNextTopic.ContentFieldsTopic.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.ContentFieldsTopic.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentNextTopic.ContentFieldsTopic.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentNextVideo includes the requested fields of the GraphQL type Video.
|
|
type CovariantInterfaceImplementationRandomItemContentNextVideo struct {
|
|
Typename string `json:"__typename"`
|
|
ContentFieldsVideo `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemContentNextVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextVideo) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemContentNextVideo.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextVideo) GetNext() ContentFieldsNextContent {
|
|
return v.ContentFieldsVideo.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemContentNextVideo.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextVideo) GetRelated() []ContentFieldsRelatedContent {
|
|
return v.ContentFieldsVideo.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextVideo) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemContentNextVideo
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemContentNextVideo = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.ContentFieldsVideo)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemContentNextVideo struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextVideo) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentNextVideo) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemContentNextVideo, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemContentNextVideo
|
|
|
|
retval.Typename = v.Typename
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.ContentFieldsVideo.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentNextVideo.ContentFieldsVideo.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.ContentFieldsVideo.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentNextVideo.ContentFieldsVideo.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedArticle includes the requested fields of the GraphQL type Article.
|
|
type CovariantInterfaceImplementationRandomItemContentRelatedArticle struct {
|
|
Typename string `json:"__typename"`
|
|
ContentFieldsArticle `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemContentRelatedArticle.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedArticle) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemContentRelatedArticle.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedArticle) GetNext() ContentFieldsNextContent {
|
|
return v.ContentFieldsArticle.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemContentRelatedArticle.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedArticle) GetRelated() []ContentFieldsRelatedContent {
|
|
return v.ContentFieldsArticle.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedArticle) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemContentRelatedArticle
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemContentRelatedArticle = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.ContentFieldsArticle)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemContentRelatedArticle struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedArticle) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedArticle) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemContentRelatedArticle, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemContentRelatedArticle
|
|
|
|
retval.Typename = v.Typename
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.ContentFieldsArticle.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentRelatedArticle.ContentFieldsArticle.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.ContentFieldsArticle.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentRelatedArticle.ContentFieldsArticle.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedContent includes the requested fields of the GraphQL interface Content.
|
|
//
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedContent is implemented by the following types:
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedArticle
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedTopic
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedVideo
|
|
// The GraphQL type's documentation follows.
|
|
//
|
|
// Content is implemented by various types like Article, Video, and Topic.
|
|
type CovariantInterfaceImplementationRandomItemContentRelatedContent interface {
|
|
implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentRelatedContent()
|
|
// GetTypename returns the receiver's concrete GraphQL type-name (see interface doc for possible values).
|
|
GetTypename() string
|
|
ContentFields
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedArticle) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentRelatedContent() {
|
|
}
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedTopic) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentRelatedContent() {
|
|
}
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedVideo) implementsGraphQLInterfaceCovariantInterfaceImplementationRandomItemContentRelatedContent() {
|
|
}
|
|
|
|
func __unmarshalCovariantInterfaceImplementationRandomItemContentRelatedContent(b []byte, v *CovariantInterfaceImplementationRandomItemContentRelatedContent) 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(CovariantInterfaceImplementationRandomItemContentRelatedArticle)
|
|
return json.Unmarshal(b, *v)
|
|
case "Topic":
|
|
*v = new(CovariantInterfaceImplementationRandomItemContentRelatedTopic)
|
|
return json.Unmarshal(b, *v)
|
|
case "Video":
|
|
*v = new(CovariantInterfaceImplementationRandomItemContentRelatedVideo)
|
|
return json.Unmarshal(b, *v)
|
|
case "":
|
|
return fmt.Errorf(
|
|
"response was missing Content.__typename")
|
|
default:
|
|
return fmt.Errorf(
|
|
`unexpected concrete type for CovariantInterfaceImplementationRandomItemContentRelatedContent: "%v"`, tn.TypeName)
|
|
}
|
|
}
|
|
|
|
func __marshalCovariantInterfaceImplementationRandomItemContentRelatedContent(v *CovariantInterfaceImplementationRandomItemContentRelatedContent) ([]byte, error) {
|
|
|
|
var typename string
|
|
switch v := (*v).(type) {
|
|
case *CovariantInterfaceImplementationRandomItemContentRelatedArticle:
|
|
typename = "Article"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemContentRelatedArticle
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *CovariantInterfaceImplementationRandomItemContentRelatedTopic:
|
|
typename = "Topic"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemContentRelatedTopic
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case *CovariantInterfaceImplementationRandomItemContentRelatedVideo:
|
|
typename = "Video"
|
|
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
result := struct {
|
|
TypeName string `json:"__typename"`
|
|
*__premarshalCovariantInterfaceImplementationRandomItemContentRelatedVideo
|
|
}{typename, premarshaled}
|
|
return json.Marshal(result)
|
|
case nil:
|
|
return []byte("null"), nil
|
|
default:
|
|
return nil, fmt.Errorf(
|
|
`unexpected concrete type for CovariantInterfaceImplementationRandomItemContentRelatedContent: "%T"`, v)
|
|
}
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedTopic includes the requested fields of the GraphQL type Topic.
|
|
type CovariantInterfaceImplementationRandomItemContentRelatedTopic struct {
|
|
Typename string `json:"__typename"`
|
|
ContentFieldsTopic `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemContentRelatedTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedTopic) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemContentRelatedTopic.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedTopic) GetNext() ContentFieldsNextContent {
|
|
return v.ContentFieldsTopic.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemContentRelatedTopic.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedTopic) GetRelated() []ContentFieldsRelatedContent {
|
|
return v.ContentFieldsTopic.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemContentRelatedTopic
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemContentRelatedTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.ContentFieldsTopic)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemContentRelatedTopic struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedTopic) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemContentRelatedTopic, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemContentRelatedTopic
|
|
|
|
retval.Typename = v.Typename
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.ContentFieldsTopic.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentRelatedTopic.ContentFieldsTopic.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.ContentFieldsTopic.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentRelatedTopic.ContentFieldsTopic.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemContentRelatedVideo includes the requested fields of the GraphQL type Video.
|
|
type CovariantInterfaceImplementationRandomItemContentRelatedVideo struct {
|
|
Typename string `json:"__typename"`
|
|
ContentFieldsVideo `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemContentRelatedVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedVideo) GetTypename() string {
|
|
return v.Typename
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemContentRelatedVideo.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedVideo) GetNext() ContentFieldsNextContent {
|
|
return v.ContentFieldsVideo.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemContentRelatedVideo.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedVideo) GetRelated() []ContentFieldsRelatedContent {
|
|
return v.ContentFieldsVideo.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedVideo) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemContentRelatedVideo
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemContentRelatedVideo = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.ContentFieldsVideo)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemContentRelatedVideo struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedVideo) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemContentRelatedVideo) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemContentRelatedVideo, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemContentRelatedVideo
|
|
|
|
retval.Typename = v.Typename
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.ContentFieldsVideo.Next
|
|
var err error
|
|
*dst, err = __marshalContentFieldsNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentRelatedVideo.ContentFieldsVideo.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.ContentFieldsVideo.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalContentFieldsRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemContentRelatedVideo.ContentFieldsVideo.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemTopic includes the requested fields of the GraphQL type Topic.
|
|
type CovariantInterfaceImplementationRandomItemTopic struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Next CovariantInterfaceImplementationRandomItemContentNextContent `json:"-"`
|
|
Related []CovariantInterfaceImplementationRandomItemContentRelatedContent `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemTopic.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns CovariantInterfaceImplementationRandomItemTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemTopic.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) GetNext() CovariantInterfaceImplementationRandomItemContentNextContent {
|
|
return v.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemTopic.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) GetRelated() []CovariantInterfaceImplementationRandomItemContentRelatedContent {
|
|
return v.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemTopic
|
|
Next json.RawMessage `json:"next"`
|
|
Related []json.RawMessage `json:"related"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Next
|
|
src := firstPass.Next
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalCovariantInterfaceImplementationRandomItemContentNextContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal CovariantInterfaceImplementationRandomItemTopic.Next: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.Related
|
|
src := firstPass.Related
|
|
*dst = make(
|
|
[]CovariantInterfaceImplementationRandomItemContentRelatedContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalCovariantInterfaceImplementationRandomItemContentRelatedContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal CovariantInterfaceImplementationRandomItemTopic.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemTopic struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Id testutil.ID `json:"id"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemTopic) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemTopic, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemTopic
|
|
|
|
retval.Typename = v.Typename
|
|
retval.Id = v.Id
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.Next
|
|
var err error
|
|
*dst, err = __marshalCovariantInterfaceImplementationRandomItemContentNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemTopic.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalCovariantInterfaceImplementationRandomItemContentRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemTopic.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRandomItemVideo includes the requested fields of the GraphQL type Video.
|
|
type CovariantInterfaceImplementationRandomItemVideo struct {
|
|
Typename string `json:"__typename"`
|
|
// ID is the identifier of the content.
|
|
Id testutil.ID `json:"id"`
|
|
Next CovariantInterfaceImplementationRandomItemContentNextContent `json:"-"`
|
|
Related []CovariantInterfaceImplementationRandomItemContentRelatedContent `json:"-"`
|
|
}
|
|
|
|
// GetTypename returns CovariantInterfaceImplementationRandomItemVideo.Typename, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) GetTypename() string { return v.Typename }
|
|
|
|
// GetId returns CovariantInterfaceImplementationRandomItemVideo.Id, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) GetId() testutil.ID { return v.Id }
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRandomItemVideo.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) GetNext() CovariantInterfaceImplementationRandomItemContentNextContent {
|
|
return v.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRandomItemVideo.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) GetRelated() []CovariantInterfaceImplementationRandomItemContentRelatedContent {
|
|
return v.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRandomItemVideo
|
|
Next json.RawMessage `json:"next"`
|
|
Related []json.RawMessage `json:"related"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRandomItemVideo = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
{
|
|
dst := &v.Next
|
|
src := firstPass.Next
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalCovariantInterfaceImplementationRandomItemContentNextContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal CovariantInterfaceImplementationRandomItemVideo.Next: %w", err)
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
dst := &v.Related
|
|
src := firstPass.Related
|
|
*dst = make(
|
|
[]CovariantInterfaceImplementationRandomItemContentRelatedContent,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
if len(src) != 0 && string(src) != "null" {
|
|
err = __unmarshalCovariantInterfaceImplementationRandomItemContentRelatedContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal CovariantInterfaceImplementationRandomItemVideo.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRandomItemVideo struct {
|
|
Typename string `json:"__typename"`
|
|
|
|
Id testutil.ID `json:"id"`
|
|
|
|
Next json.RawMessage `json:"next"`
|
|
|
|
Related []json.RawMessage `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRandomItemVideo) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRandomItemVideo, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRandomItemVideo
|
|
|
|
retval.Typename = v.Typename
|
|
retval.Id = v.Id
|
|
{
|
|
|
|
dst := &retval.Next
|
|
src := v.Next
|
|
var err error
|
|
*dst, err = __marshalCovariantInterfaceImplementationRandomItemContentNextContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemVideo.Next: %w", err)
|
|
}
|
|
}
|
|
{
|
|
|
|
dst := &retval.Related
|
|
src := v.Related
|
|
*dst = make(
|
|
[]json.RawMessage,
|
|
len(src))
|
|
for i, src := range src {
|
|
dst := &(*dst)[i]
|
|
var err error
|
|
*dst, err = __marshalCovariantInterfaceImplementationRandomItemContentRelatedContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationRandomItemVideo.Related: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationResponse is returned by CovariantInterfaceImplementation on success.
|
|
type CovariantInterfaceImplementationResponse struct {
|
|
RandomItem CovariantInterfaceImplementationRandomItemContent `json:"-"`
|
|
Root CovariantInterfaceImplementationRootTopic `json:"root"`
|
|
}
|
|
|
|
// GetRandomItem returns CovariantInterfaceImplementationResponse.RandomItem, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationResponse) GetRandomItem() CovariantInterfaceImplementationRandomItemContent {
|
|
return v.RandomItem
|
|
}
|
|
|
|
// GetRoot returns CovariantInterfaceImplementationResponse.Root, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationResponse) GetRoot() CovariantInterfaceImplementationRootTopic {
|
|
return v.Root
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationResponse) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationResponse
|
|
RandomItem json.RawMessage `json:"randomItem"`
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationResponse = 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 = __unmarshalCovariantInterfaceImplementationRandomItemContent(
|
|
src, dst)
|
|
if err != nil {
|
|
return fmt.Errorf(
|
|
"unable to unmarshal CovariantInterfaceImplementationResponse.RandomItem: %w", err)
|
|
}
|
|
}
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationResponse struct {
|
|
RandomItem json.RawMessage `json:"randomItem"`
|
|
|
|
Root CovariantInterfaceImplementationRootTopic `json:"root"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationResponse) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationResponse) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationResponse, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationResponse
|
|
|
|
{
|
|
|
|
dst := &retval.RandomItem
|
|
src := v.RandomItem
|
|
var err error
|
|
*dst, err = __marshalCovariantInterfaceImplementationRandomItemContent(
|
|
&src)
|
|
if err != nil {
|
|
return nil, fmt.Errorf(
|
|
"unable to marshal CovariantInterfaceImplementationResponse.RandomItem: %w", err)
|
|
}
|
|
}
|
|
retval.Root = v.Root
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRootTopic includes the requested fields of the GraphQL type Topic.
|
|
type CovariantInterfaceImplementationRootTopic struct {
|
|
ContentFieldsTopic `json:"-"`
|
|
TopicFields `json:"-"`
|
|
Next CovariantInterfaceImplementationRootTopicNextTopic `json:"next"`
|
|
Related []CovariantInterfaceImplementationRootTopicRelatedTopic `json:"related"`
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRootTopic.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRootTopic) GetNext() CovariantInterfaceImplementationRootTopicNextTopic {
|
|
return v.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRootTopic.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRootTopic) GetRelated() []CovariantInterfaceImplementationRootTopicRelatedTopic {
|
|
return v.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRootTopic
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRootTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.ContentFieldsTopic)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
err = json.Unmarshal(
|
|
b, &v.TopicFields)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRootTopic struct {
|
|
Next CovariantInterfaceImplementationRootTopicNextTopic `json:"next"`
|
|
|
|
Related []CovariantInterfaceImplementationRootTopicRelatedTopic `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopic) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRootTopic, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRootTopic
|
|
|
|
retval.Next = v.Next
|
|
retval.Related = v.Related
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRootTopicNextTopic includes the requested fields of the GraphQL type Topic.
|
|
type CovariantInterfaceImplementationRootTopicNextTopic struct {
|
|
TopicFields `json:"-"`
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRootTopicNextTopic.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRootTopicNextTopic) GetNext() TopicFieldsNextTopic {
|
|
return v.TopicFields.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRootTopicNextTopic.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRootTopicNextTopic) GetRelated() []TopicFieldsRelatedTopic {
|
|
return v.TopicFields.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopicNextTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRootTopicNextTopic
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRootTopicNextTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.TopicFields)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRootTopicNextTopic struct {
|
|
Next TopicFieldsNextTopic `json:"next"`
|
|
|
|
Related []TopicFieldsRelatedTopic `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopicNextTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopicNextTopic) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRootTopicNextTopic, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRootTopicNextTopic
|
|
|
|
retval.Next = v.TopicFields.Next
|
|
retval.Related = v.TopicFields.Related
|
|
return &retval, nil
|
|
}
|
|
|
|
// CovariantInterfaceImplementationRootTopicRelatedTopic includes the requested fields of the GraphQL type Topic.
|
|
type CovariantInterfaceImplementationRootTopicRelatedTopic struct {
|
|
TopicFields `json:"-"`
|
|
}
|
|
|
|
// GetNext returns CovariantInterfaceImplementationRootTopicRelatedTopic.Next, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRootTopicRelatedTopic) GetNext() TopicFieldsNextTopic {
|
|
return v.TopicFields.Next
|
|
}
|
|
|
|
// GetRelated returns CovariantInterfaceImplementationRootTopicRelatedTopic.Related, and is useful for accessing the field via an interface.
|
|
func (v *CovariantInterfaceImplementationRootTopicRelatedTopic) GetRelated() []TopicFieldsRelatedTopic {
|
|
return v.TopicFields.Related
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopicRelatedTopic) UnmarshalJSON(b []byte) error {
|
|
|
|
if string(b) == "null" {
|
|
return nil
|
|
}
|
|
|
|
var firstPass struct {
|
|
*CovariantInterfaceImplementationRootTopicRelatedTopic
|
|
graphql.NoUnmarshalJSON
|
|
}
|
|
firstPass.CovariantInterfaceImplementationRootTopicRelatedTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
err = json.Unmarshal(
|
|
b, &v.TopicFields)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type __premarshalCovariantInterfaceImplementationRootTopicRelatedTopic struct {
|
|
Next TopicFieldsNextTopic `json:"next"`
|
|
|
|
Related []TopicFieldsRelatedTopic `json:"related"`
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopicRelatedTopic) MarshalJSON() ([]byte, error) {
|
|
premarshaled, err := v.__premarshalJSON()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return json.Marshal(premarshaled)
|
|
}
|
|
|
|
func (v *CovariantInterfaceImplementationRootTopicRelatedTopic) __premarshalJSON() (*__premarshalCovariantInterfaceImplementationRootTopicRelatedTopic, error) {
|
|
var retval __premarshalCovariantInterfaceImplementationRootTopicRelatedTopic
|
|
|
|
retval.Next = v.TopicFields.Next
|
|
retval.Related = v.TopicFields.Related
|
|
return &retval, nil
|
|
}
|
|
|
|
// TopicFields includes the GraphQL fields of Topic requested by the fragment TopicFields.
|
|
type TopicFields struct {
|
|
Next TopicFieldsNextTopic `json:"next"`
|
|
Related []TopicFieldsRelatedTopic `json:"related"`
|
|
}
|
|
|
|
// GetNext returns TopicFields.Next, and is useful for accessing the field via an interface.
|
|
func (v *TopicFields) GetNext() TopicFieldsNextTopic { return v.Next }
|
|
|
|
// GetRelated returns TopicFields.Related, and is useful for accessing the field via an interface.
|
|
func (v *TopicFields) GetRelated() []TopicFieldsRelatedTopic { return v.Related }
|
|
|
|
// TopicFieldsNextTopic includes the requested fields of the GraphQL type Topic.
|
|
type TopicFieldsNextTopic struct {
|
|
// ID is documented in the Content interface.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetId returns TopicFieldsNextTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *TopicFieldsNextTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
// TopicFieldsRelatedTopic includes the requested fields of the GraphQL type Topic.
|
|
type TopicFieldsRelatedTopic struct {
|
|
// ID is documented in the Content interface.
|
|
Id testutil.ID `json:"id"`
|
|
}
|
|
|
|
// GetId returns TopicFieldsRelatedTopic.Id, and is useful for accessing the field via an interface.
|
|
func (v *TopicFieldsRelatedTopic) GetId() testutil.ID { return v.Id }
|
|
|
|
func CovariantInterfaceImplementation(
|
|
client graphql.Client,
|
|
) (*CovariantInterfaceImplementationResponse, error) {
|
|
req := &graphql.Request{
|
|
OpName: "CovariantInterfaceImplementation",
|
|
Query: `
|
|
query CovariantInterfaceImplementation {
|
|
randomItem {
|
|
__typename
|
|
id
|
|
next {
|
|
__typename
|
|
... ContentFields
|
|
}
|
|
related {
|
|
__typename
|
|
... ContentFields
|
|
}
|
|
}
|
|
root {
|
|
... ContentFields
|
|
... TopicFields
|
|
next {
|
|
... TopicFields
|
|
}
|
|
related {
|
|
... TopicFields
|
|
}
|
|
}
|
|
}
|
|
fragment ContentFields on Content {
|
|
next {
|
|
__typename
|
|
id
|
|
}
|
|
related {
|
|
__typename
|
|
id
|
|
}
|
|
}
|
|
fragment TopicFields on Topic {
|
|
next {
|
|
id
|
|
}
|
|
related {
|
|
id
|
|
}
|
|
}
|
|
`,
|
|
}
|
|
var err error
|
|
|
|
var data CovariantInterfaceImplementationResponse
|
|
resp := &graphql.Response{Data: &data}
|
|
|
|
err = client.MakeRequest(
|
|
nil,
|
|
req,
|
|
resp,
|
|
)
|
|
|
|
return &data, err
|
|
}
|
|
|