120 lines
2.7 KiB
Go
120 lines
2.7 KiB
Go
package test
|
|
|
|
// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/Khan/genqlient/graphql"
|
|
)
|
|
|
|
type InterfaceNoFragmentsQueryResponse struct {
|
|
Root InterfaceNoFragmentsQueryRootTopic `json:"root"`
|
|
}
|
|
|
|
type InterfaceNoFragmentsQueryRootTopic struct {
|
|
Id string `json:"id"`
|
|
Name string `json:"name"`
|
|
Children []InterfaceNoFragmentsQueryRootTopicChildrenContent `json:"-"`
|
|
}
|
|
|
|
func (v *InterfaceNoFragmentsQueryRootTopic) UnmarshalJSON(b []byte) error {
|
|
var firstPass struct {
|
|
*InterfaceNoFragmentsQueryRootTopic
|
|
Children json.RawMessage `json:"children"`
|
|
}
|
|
firstPass.InterfaceNoFragmentsQueryRootTopic = v
|
|
|
|
err := json.Unmarshal(b, &firstPass)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
var tn struct {
|
|
TypeName string `json:"__typename"`
|
|
}
|
|
err = json.Unmarshal(firstPass.Children, &tn)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
switch tn.TypeName {
|
|
|
|
case "Article":
|
|
|
|
v.Children = InterfaceNoFragmentsQueryRootTopicChildrenArticle{}
|
|
err = json.Unmarshal(
|
|
firstPass.Children, &v.Children)
|
|
|
|
case "Video":
|
|
|
|
v.Children = InterfaceNoFragmentsQueryRootTopicChildrenVideo{}
|
|
err = json.Unmarshal(
|
|
firstPass.Children, &v.Children)
|
|
|
|
case "Topic":
|
|
|
|
v.Children = InterfaceNoFragmentsQueryRootTopicChildrenTopic{}
|
|
err = json.Unmarshal(
|
|
firstPass.Children, &v.Children)
|
|
|
|
}
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
type InterfaceNoFragmentsQueryRootTopicChildrenArticle struct {
|
|
Id string `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
func (v InterfaceNoFragmentsQueryRootTopicChildrenArticle) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRootTopicChildrenContent() {
|
|
}
|
|
|
|
type InterfaceNoFragmentsQueryRootTopicChildrenContent interface {
|
|
implementsGraphQLInterfaceInterfaceNoFragmentsQueryRootTopicChildrenContent()
|
|
}
|
|
|
|
type InterfaceNoFragmentsQueryRootTopicChildrenTopic struct {
|
|
Id string `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
func (v InterfaceNoFragmentsQueryRootTopicChildrenTopic) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRootTopicChildrenContent() {
|
|
}
|
|
|
|
type InterfaceNoFragmentsQueryRootTopicChildrenVideo struct {
|
|
Id string `json:"id"`
|
|
Name string `json:"name"`
|
|
}
|
|
|
|
func (v InterfaceNoFragmentsQueryRootTopicChildrenVideo) implementsGraphQLInterfaceInterfaceNoFragmentsQueryRootTopicChildrenContent() {
|
|
}
|
|
|
|
func InterfaceNoFragmentsQuery(
|
|
client graphql.Client,
|
|
) (*InterfaceNoFragmentsQueryResponse, error) {
|
|
var retval InterfaceNoFragmentsQueryResponse
|
|
err := client.MakeRequest(
|
|
nil,
|
|
"InterfaceNoFragmentsQuery",
|
|
`
|
|
query InterfaceNoFragmentsQuery {
|
|
root {
|
|
id
|
|
name
|
|
children {
|
|
id
|
|
name
|
|
}
|
|
}
|
|
}
|
|
`,
|
|
&retval,
|
|
nil,
|
|
)
|
|
return &retval, err
|
|
}
|