Documentation
¶
Index ¶
- func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
- type Character
- type CharacterFields
- type ComplexityRoot
- type Config
- type DirectiveRoot
- type Droid
- type DroidResolver
- type Episode
- type FriendsConnection
- type FriendsConnectionResolver
- type FriendsEdge
- type Human
- type HumanResolver
- type LengthUnit
- type MutationResolver
- type PageInfo
- type QueryResolver
- type Resolver
- type ResolverRoot
- type Review
- type SearchResult
- type Starship
- type StarshipResolver
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewExecutableSchema ¶
func NewExecutableSchema(cfg Config) graphql.ExecutableSchema
NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.
Types ¶
type CharacterFields ¶
type ComplexityRoot ¶ added in v0.5.0
type ComplexityRoot struct {
Droid struct {
Id func(childComplexity int) int
Name func(childComplexity int) int
Friends func(childComplexity int) int
FriendsConnection func(childComplexity int, first *int, after *string) int
AppearsIn func(childComplexity int) int
PrimaryFunction func(childComplexity int) int
}
FriendsConnection struct {
TotalCount func(childComplexity int) int
Edges func(childComplexity int) int
Friends func(childComplexity int) int
PageInfo func(childComplexity int) int
}
FriendsEdge struct {
Cursor func(childComplexity int) int
Node func(childComplexity int) int
}
Human struct {
Id func(childComplexity int) int
Name func(childComplexity int) int
Height func(childComplexity int, unit LengthUnit) int
Mass func(childComplexity int) int
Friends func(childComplexity int) int
FriendsConnection func(childComplexity int, first *int, after *string) int
AppearsIn func(childComplexity int) int
Starships func(childComplexity int) int
}
Mutation struct {
CreateReview func(childComplexity int, episode Episode, review Review) int
}
PageInfo struct {
StartCursor func(childComplexity int) int
EndCursor func(childComplexity int) int
HasNextPage func(childComplexity int) int
}
Query struct {
Hero func(childComplexity int, episode *Episode) int
Reviews func(childComplexity int, episode Episode, since *time.Time) int
Search func(childComplexity int, text string) int
Character func(childComplexity int, id string) int
Droid func(childComplexity int, id string) int
Human func(childComplexity int, id string) int
Starship func(childComplexity int, id string) int
}
Review struct {
Stars func(childComplexity int) int
Commentary func(childComplexity int) int
Time func(childComplexity int) int
}
Starship struct {
Id func(childComplexity int) int
Name func(childComplexity int) int
Length func(childComplexity int, unit *LengthUnit) int
History func(childComplexity int) int
}
}
type Config ¶
type Config struct {
Resolvers ResolverRoot
Directives DirectiveRoot
Complexity ComplexityRoot
}
func NewResolver ¶
func NewResolver() Config
type DirectiveRoot ¶
type DirectiveRoot struct {
}
type Droid ¶
type Droid struct {
CharacterFields
PrimaryFunction string
}
func (Droid) IsCharacter ¶ added in v0.6.0
func (Droid) IsCharacter()
func (Droid) IsSearchResult ¶ added in v0.6.0
func (Droid) IsSearchResult()
type DroidResolver ¶
type FriendsConnection ¶
type FriendsConnection struct {
// contains filtered or unexported fields
}
func (*FriendsConnection) PageInfo ¶
func (f *FriendsConnection) PageInfo() PageInfo
func (*FriendsConnection) TotalCount ¶
func (f *FriendsConnection) TotalCount() int
type FriendsConnectionResolver ¶
type FriendsConnectionResolver interface {
Edges(ctx context.Context, obj *FriendsConnection) ([]FriendsEdge, error)
Friends(ctx context.Context, obj *FriendsConnection) ([]Character, error)
}
type FriendsEdge ¶
type Human ¶
type Human struct {
CharacterFields
StarshipIds []string
Mass float64
// contains filtered or unexported fields
}
func (*Human) Height ¶
func (h *Human) Height(unit LengthUnit) float64
func (Human) IsCharacter ¶ added in v0.6.0
func (Human) IsCharacter()
func (Human) IsSearchResult ¶ added in v0.6.0
func (Human) IsSearchResult()
type HumanResolver ¶
type LengthUnit ¶
type LengthUnit string
const ( LengthUnitMeter LengthUnit = "METER" LengthUnitFoot LengthUnit = "FOOT" )
func (LengthUnit) IsValid ¶
func (e LengthUnit) IsValid() bool
func (LengthUnit) MarshalGQL ¶
func (e LengthUnit) MarshalGQL(w io.Writer)
func (LengthUnit) String ¶
func (e LengthUnit) String() string
func (*LengthUnit) UnmarshalGQL ¶
func (e *LengthUnit) UnmarshalGQL(v interface{}) error
type MutationResolver ¶
type QueryResolver ¶
type QueryResolver interface {
Hero(ctx context.Context, episode *Episode) (Character, error)
Reviews(ctx context.Context, episode Episode, since *time.Time) ([]Review, error)
Search(ctx context.Context, text string) ([]SearchResult, error)
Character(ctx context.Context, id string) (Character, error)
Droid(ctx context.Context, id string) (*Droid, error)
Human(ctx context.Context, id string) (*Human, error)
Starship(ctx context.Context, id string) (*Starship, error)
}
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
func (*Resolver) Droid ¶
func (r *Resolver) Droid() DroidResolver
func (*Resolver) FriendsConnection ¶
func (r *Resolver) FriendsConnection() FriendsConnectionResolver
func (*Resolver) Human ¶
func (r *Resolver) Human() HumanResolver
func (*Resolver) Mutation ¶
func (r *Resolver) Mutation() MutationResolver
func (*Resolver) Query ¶
func (r *Resolver) Query() QueryResolver
func (*Resolver) Starship ¶
func (r *Resolver) Starship() StarshipResolver
type ResolverRoot ¶
type ResolverRoot interface {
Droid() DroidResolver
FriendsConnection() FriendsConnectionResolver
Human() HumanResolver
Mutation() MutationResolver
Query() QueryResolver
Starship() StarshipResolver
}
type Review ¶
func UnmarshalReviewInput ¶
type SearchResult ¶
type SearchResult interface {
IsSearchResult()
}
type Starship ¶
type Starship struct {
ID string `json:"id"`
Name string `json:"name"`
Length float64 `json:"length"`
History [][]int `json:"history"`
}
func (Starship) IsSearchResult ¶ added in v0.6.0
func (Starship) IsSearchResult()
type StarshipResolver ¶
Click to show internal directories.
Click to hide internal directories.