Version: v0.7.1 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Nov 28, 2018 License: MIT Imports: 13 Imported by: 0


todo app

This is the simplest example of a graphql server.

to run this server

go run ./example/todo/server/server.go

and open http://localhost:8081 in your browser




This section is empty.


This section is empty.


func NewExecutableSchema

func NewExecutableSchema(cfg Config) graphql.ExecutableSchema

NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface.


type ComplexityRoot added in v0.5.0

type ComplexityRoot struct {
	MyMutation struct {
		CreateTodo func(childComplexity int, todo TodoInput) int
		UpdateTodo func(childComplexity int, id int, changes map[string]interface{}) int

	MyQuery struct {
		Todo     func(childComplexity int, id int) int
		LastTodo func(childComplexity int) int
		Todos    func(childComplexity int) int

	Todo struct {
		Id   func(childComplexity int) int
		Text func(childComplexity int) int
		Done func(childComplexity int) int

type Config

type Config struct {
	Resolvers  ResolverRoot
	Directives DirectiveRoot
	Complexity ComplexityRoot

func New

func New() Config

type DirectiveRoot

type DirectiveRoot struct {
	HasRole func(ctx context.Context, obj interface{}, next graphql.Resolver, role Role) (res interface{}, err error)

type MutationResolver

type MutationResolver resolvers

func (*MutationResolver) CreateTodo

func (r *MutationResolver) CreateTodo(ctx context.Context, todo TodoInput) (Todo, error)

func (*MutationResolver) UpdateTodo

func (r *MutationResolver) UpdateTodo(ctx context.Context, id int, changes map[string]interface{}) (*Todo, error)

type MyMutationResolver

type MyMutationResolver interface {
	CreateTodo(ctx context.Context, todo TodoInput) (Todo, error)
	UpdateTodo(ctx context.Context, id int, changes map[string]interface{}) (*Todo, error)

type MyQueryResolver

type MyQueryResolver interface {
	Todo(ctx context.Context, id int) (*Todo, error)
	LastTodo(ctx context.Context) (*Todo, error)
	Todos(ctx context.Context) ([]Todo, error)

type Ownable added in v0.5.0

type Ownable interface {
	Owner() *User

type QueryResolver

type QueryResolver resolvers

func (*QueryResolver) LastTodo

func (r *QueryResolver) LastTodo(ctx context.Context) (*Todo, error)

func (*QueryResolver) Todo

func (r *QueryResolver) Todo(ctx context.Context, id int) (*Todo, error)

func (*QueryResolver) Todos

func (r *QueryResolver) Todos(ctx context.Context) ([]Todo, error)

type ResolverRoot

type ResolverRoot interface {
	MyMutation() MyMutationResolver
	MyQuery() MyQueryResolver

type Role

type Role string
const (
	RoleAdmin Role = "ADMIN"
	RoleOwner Role = "OWNER"

func (Role) IsValid

func (e Role) IsValid() bool

func (Role) MarshalGQL

func (e Role) MarshalGQL(w io.Writer)

func (Role) String

func (e Role) String() string

func (*Role) UnmarshalGQL

func (e *Role) UnmarshalGQL(v interface{}) error

type Todo

type Todo struct {
	ID   int
	Text string
	Done bool
	// contains filtered or unexported fields

func (Todo) Owner added in v0.5.0

func (t Todo) Owner() *User

type TodoInput

type TodoInput struct {
	Text string `json:"text"`
	Done *bool  `json:"done"`

Passed to createTodo to create a new todo

func UnmarshalTodoInput

func UnmarshalTodoInput(v interface{}) (TodoInput, error)

type User added in v0.5.0

type User struct {
	ID   int
	Name string


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL