Documentation
¶
Index ¶
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 ComplexityRoot ¶
type ComplexityRoot struct {
GenreListDto struct {
ID func(childComplexity int) int
Name func(childComplexity int) int
}
Mutation struct {
CreateGenre func(childComplexity int, input model.CreateGenreInput) int
CreateSong func(childComplexity int, input model.CreateSongInput) int
CreateUser func(childComplexity int, input model.CreateUserInput) int
DeleteGenre func(childComplexity int, id uuid.UUID) int
DeleteSong func(childComplexity int, id uuid.UUID) int
MarkSongAsListened func(childComplexity int, userID uuid.UUID, songID uuid.UUID) int
}
Query struct {
Genre func(childComplexity int, id uuid.UUID) int
Genres func(childComplexity int) int
Song func(childComplexity int, id uuid.UUID) int
Songs func(childComplexity int) int
SongsByGenre func(childComplexity int, genreID uuid.UUID) int
SongsRecommendation func(childComplexity int, userID uuid.UUID) int
User func(childComplexity int, email string) int
}
SongListDto struct {
Artist func(childComplexity int) int
ID func(childComplexity int) int
Title func(childComplexity int) int
}
UserListDto struct {
Email func(childComplexity int) int
ID func(childComplexity int) int
UserName func(childComplexity int) int
}
}
type Config ¶
type Config struct {
Schema *ast.Schema
Resolvers ResolverRoot
Directives DirectiveRoot
Complexity ComplexityRoot
}
type DirectiveRoot ¶
type DirectiveRoot struct {
}
type MutationResolver ¶
type MutationResolver interface {
CreateUser(ctx context.Context, input model.CreateUserInput) (*model.UserListDto, error)
CreateGenre(ctx context.Context, input model.CreateGenreInput) (*model.GenreListDto, error)
DeleteGenre(ctx context.Context, id uuid.UUID) (bool, error)
CreateSong(ctx context.Context, input model.CreateSongInput) (*model.SongListDto, error)
DeleteSong(ctx context.Context, id uuid.UUID) (bool, error)
MarkSongAsListened(ctx context.Context, userID uuid.UUID, songID uuid.UUID) (bool, error)
}
type QueryResolver ¶
type QueryResolver interface {
User(ctx context.Context, email string) (*model.UserListDto, error)
Genres(ctx context.Context) ([]*model.GenreListDto, error)
Genre(ctx context.Context, id uuid.UUID) (*model.GenreListDto, error)
Songs(ctx context.Context) ([]*model.SongListDto, error)
Song(ctx context.Context, id uuid.UUID) (*model.SongListDto, error)
SongsByGenre(ctx context.Context, genreID uuid.UUID) ([]*model.SongListDto, error)
SongsRecommendation(ctx context.Context, userID uuid.UUID) ([]*model.SongListDto, error)
}
type Resolver ¶
type Resolver struct {
// contains filtered or unexported fields
}
func (*Resolver) Mutation ¶
func (r *Resolver) Mutation() MutationResolver
Mutation returns MutationResolver implementation.
func (*Resolver) Query ¶
func (r *Resolver) Query() QueryResolver
Query returns QueryResolver implementation.
type ResolverRoot ¶
type ResolverRoot interface {
Mutation() MutationResolver
Query() QueryResolver
}
Click to show internal directories.
Click to hide internal directories.